【NumPy】全ての要素が0の配列を作成する方法(np.zeros、np.zeros_like)[Python]

  • URLをコピーしました!
目次

NumPy

前回、PythonのNumPyを使ったランダムな値の取得方法を紹介しました。

今回は全ての要素が0の配列を作成する方法を紹介します。

それでは始めていきましょう。

np.zeros():全ての要素が0の配列を作成

全ての要素が0の配列を作成するには「np.zeros()」を用います。

引数として数値を与えるとその数だけ要素として0をもつ配列を作成します。

import numpy as np

test1 = np.zeros(5)

print(test1)

実行結果
[0. 0. 0. 0. 0.]

引数をタプルで複数の数値を与えると二次元配列、三次元配列として全ての要素を0としてもつ配列を作成できます。

import numpy as np

test2 = np.zeros((5, 3))

print(test2)

実行結果
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
import numpy as np

test3 = np.zeros((5, 3, 4))

print(test3)

実行結果
[[[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]

 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]

 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]

 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]

 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]]

間違えやすいのは二次元配列、三次元配列などを作成する際、タプルで値を与えず、そのまま引数として与えてしまうことです。

この場合はエラーとなります。

import numpy as np

test4 = np.zeros(5, 3)

print(test4)

実行結果
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[5], line 3
      1 import numpy as np
----> 3 test3 = np.zeros(5,3)
      5 print(test3)

TypeError: Cannot interpret '3' as a data type

np.zeros_like():既存の配列と同じ構造で要素が0の配列を作成

次に既にある配列と同じ構造で要素が0の配列を作成する方法を紹介します。

その場合は「np.zeros_like(配列)」を用います。

前回紹介した「np.random.rand()」を用いて、ランダムな要素をもつ配列を作成した後、その配列と同じ構造で要素が0の配列を作成してみます。

import numpy as np

test5 = np.random.rand(5, 3)

test6 = np.zeros_like(test5)

print(test5)
print(test6)

実行結果
[[0.28155875 0.37490359 0.21903851]
 [0.15826817 0.83419583 0.12759448]
 [0.31812487 0.10712567 0.68325333]
 [0.67054753 0.15511599 0.60436023]
 [0.03760575 0.0157144  0.32311825]]
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]

次回はSciPyのcurve_fitを用いてカーブフィッティングをする方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次