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

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

numpy.empty() 大きさ(行数・列数)shape、型dtypeを引数で指定して生成

numpy.empty_like() 既存の配列と同じ大きさ(行数・列数)shape、型dtypeで生成

生成される配列の要素の値はランダムになる。 0や1、任意の値で初期化して生成する場合は以下の記事を参照。

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

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

numpy.empty — NumPy v1.13 Manual

生成したい配列の大きさ(行数・列数)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]]

デフォルトだと型dtypeはfloat64。引数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()を使います。

numpy.empty_like — NumPy v1.13 Manual

引数として元となる配列を指定します。生成される配列の型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]]

シェア

関連カテゴリー

Python NumPy

NumPy, randomで様々な種類の乱数の配列を生成 NumPyのsortとargsort関数で任意の行・列を基準にソート Python, NumPyで行列の演算(逆行列、行列式、固有値など) Pythonで正規化・標準化(リスト、NumPy配列、pandas.DataFrame) NumPyのデータ型dtype一覧とastypeによる変換(キャスト) NumPy配列ndarrayの最大値・最小値のインデックス(位置)を取得 Python, NumPy(OpenCV)で画像を二値化処理 pandas.DataFrame, SeriesとNumPy配列ndarrayを相互に変換 『Pythonデータサイエンスハンドブック』は良書(NumPy, pandasほか) NumPy配列ndarrayをイミュータブル(書き換え禁止)に設定 Python, OpenCV, Pillow(PIL)で画像サイズ(幅、高さ)を取得 NumPyでCSVファイルを読み込み・書き込み(入力・出力) NumPyのファンシーインデックス(リストによる選択と代入) NumPy配列ndarrayを結合(concatenate, stack, blockなど) NumPy配列ndarrayの対角成分の抽出、対角行列の作成(diag, diagonal)

Last Updated: 6/26/2019, 10:34:03 PM