note.nkmk.me

NumPyで空の配列ndarrayを生成するemptyとempty_like

Date: 2017-12-28 / tags: Python, NumPy

NumPyで初期化されていない空の配列ndarrayを生成する方法は以下の通り。

  • numpy.empty()
    • 大きさ(行数・列数)shape、型dtypeを引数で指定して生成
  • numpy.empty_like()
    • 既存の配列と同じ大きさ(行数・列数)shape、型dtypeで生成

生成される配列の要素の値はランダムになる。

0や1、任意の値で初期化して生成する場合は以下の記事を参照。

スポンサーリンク

numpy.empty()で空配列を生成

大きさ(行数・列数)shape、型dtypeを引数で指定して生成したいときは、numpy.empty()を使う。

生成したい配列の大きさ(行数・列数)shapeを引数として渡す。

import numpy as np

print(np.empty(3))
# [ -3.10503618e+231  -3.10503618e+231  -3.10503618e+231]

print(np.empty((2, 3)))
# [[ -3.10503618e+231   2.68677888e+154   6.92663118e-310]
#  [  1.06099790e-313   6.92663119e-310   4.17211958e-309]]

デフォルトだと型dtypefloat64。引数dtypeで指定することもできる。

print(np.empty(3).dtype)
# float64

print(np.empty(3, dtype=np.int))
# [-1152921504606846976 -1152921504606846976 -1152921504606846974]

print(np.empty(3, dtype=np.int).dtype)
# int64

numpy.empty_like()で空配列を生成

既存の配列と同じ大きさ(行数・列数)shape、型dtypeで生成したいときは、numpy.empty_like()を使う。

引数として元となる配列を指定する。生成される配列の型dtypeは元の配列の型dtypeになる。

a_int = np.arange(6).reshape((2,3))
print(a_int)
# [[0 1 2]
#  [3 4 5]]

print(np.empty_like(a_int))
# [[8070450532247928832 6917537789928580555     140196575903747]
#  [        21474836480     140196576086528     844446404968448]]

a_float = np.arange(6).reshape((2,3)) / 10
print(a_float)
# [[ 0.   0.1  0.2]
#  [ 0.3  0.4  0.5]]

print(np.empty_like(a_float))
# [[  0.00000000e+000   4.94065646e-324   9.88131292e-324]
#  [  1.48219694e-323   1.97626258e-323   2.47032823e-323]]

引数dtypeで型dtypeを指定することもできる。

print(np.empty_like(a_float, dtype=np.int))
# [[0 1 2]
#  [3 4 5]]
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事