LoginSignup
2
1

More than 3 years have passed since last update.

NumPyのzerosは大きさ0でも定義できるよという話

Posted at

概要

  • NumPyではnp.zeros((0, 4))みたいに大きさ0のzerosを定義できる
  • これを使うと空リストを定義してappend()で追加していくみたいなことがarrayでもできる

NumPyのarrayでもlist.append()みたいなことがやりたい

リストはappendが使える

Pythonでリストを作るときによくやるのが

a = []
for i in range(10):
    a.append(1)

みたいなやつ

Arrayにはappendはない

NumPyのArrayで同じことをやろうとするとnumpy.vstack()やnumpy.hstack()を使うことになる
→ くっつける2つのArrayの行数(or 列数)が合わないといけないので、初めにshape=(1, 4)のArrayを定義してました

ダメな方
import numpy as np
a = np.zeros((1, 4))
for i in range(10):
    ones = np.ones((1, 4))
    a = a.vstack((a, ones))
a = a[1:, :] # 最初に定義した部分だけ除いてる

大きさ0のArrayが定義できる

初めにshape=(1, 4)のArrayを定義してから除く操作が気持ち悪く感じていたので、試しに大きさ0のzerosを定義したらいけた

見やすい方
import numpy as np
a = np.zeros((0, 4)) # 大きさ0のzeros
for i in range(10):
    ones = np.ones((1, 4))
    a = a.vstack((a, ones))
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1