Warning: Undefined variable $position in /home/pystyles/pystyle.info/public_html/wp/wp-content/themes/lionblog/functions.php on line 4897

numpy – empty、zeros、ones、eye、identity の使い方

numpy – empty、zeros、ones、eye、identity の使い方

概要

NumPy の雛形から配列を作成する関数を紹介します。

Advertisement

関数一覧

numpy.empty

指定した形状と型を持つ、初期化されていない配列を返します。

numpy.empty(shape, dtype=float, order="C")
引数
名前 デフォルト値
shape int, tuple of int
返される配列の形状
dtype data-type float
返される配列の型
order {“C”, “F”} “C”
多次元配列の格納形式
返り値
名前 説明
out 指定した形状と型を持つ、初期化されていない配列

サンプルコード

In [1]:
import numpy as np

a = np.empty(5, dtype=int)
print(a)  # 初期化されていないので、値は不定
[94686204616016     4294967296              0              0
              4]
In [2]:
a = np.empty((5, 5), dtype=float)
print(a)  # 初期化されていないので、値は不定
[[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.]]

numpy.empty_like

指定した配列と同じ形状と型を持つ、初期化をされていない配列を返します。

numpy.empty_like(prototype, dtype=None, order="K", subok=True)
引数
名前 デフォルト値
prototype array_like
返される配列の形状と型は、prototype の形状と型で定義されます。
dtype data-type None
指定した場合、返される配列の型を変更します。
order {“C”, “F”, “A”, “K”} “K”
指定した場合、返される配列の格納形式を変更します。
subok bool True
True の場合、返される配列は、指定した配列と同じ配列型を使用します。
返り値
名前 説明
out 指定した配列と同じ形状と型を持つ、初期化をされていない配列

サンプルコード

In [3]:
# 形状 (5, 5) と型 float を持つ配列を作成する。
a = np.random.randn(5, 5)

b = np.empty_like(a)
print(b.shape, b.dtype)
print(b)  # 初期化されていないので、値は不定
(5, 5) float64
[[ 1.28675528  0.80410302 -0.62860521 -0.17575024 -1.67632825]
 [ 0.30599304  0.44136239 -1.7411502   0.5125404   0.22553167]
 [-0.75652487 -0.3604931   0.72793714 -0.05103732  0.60639985]
 [ 1.84380532 -0.72109789 -0.05221982 -0.80845667  0.173179  ]
 [ 0.19807482  0.78269995  0.19848901  0.02770654 -0.2172286 ]]

numpy.zeros

指定した形状と型を持つ、すべての要素が 0 の配列を返します。

numpy.zeros(shape, dtype=float, order="C")
引数
名前 デフォルト値
shape int, tuple of ints
返される配列の形状
dtype data-type float
返される配列の型
order {“C”, “F”} “C”
多次元配列の格納形式
返り値
名前 説明
out 指定した形状と型を持つ、すべての要素が 0 の配列

サンプルコード

In [4]:
a = np.zeros(5, dtype=int)
print(a)
[0 0 0 0 0]
In [5]:
a = np.zeros((5, 5), dtype=float)
print(a)
[[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.]]

numpy.zeros_like

指定した配列と同じ形状と型を持つ、すべての要素が 0 の配列を返します。

numpy.zeros_like(a, dtype=None, order="K", subok=True)
引数
名前 デフォルト値
a array_like
返される配列の形状と型は、a の形状と型で定義されます。
dtype data-type None
指定した場合、返される配列の型を変更します。
order {“C”, “F”, “A”, “K”} “K”
指定した場合、返される配列の格納形式を変更します。
subok bool True
True の場合、返される配列は、指定した配列と同じ配列型を使用します。
返り値
名前 説明
out 指定した配列と同じ形状と型を持つ、すべての要素が 0 の配列

サンプルコード

In [6]:
# 形状 (5, 5) と型 float を持つ配列を作成する。
a = np.random.randn(5, 5)

b = np.zeros_like(a)
print(b.shape, b.dtype)
print(b)
(5, 5) float64
[[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.]]

numpy.ones

指定した形状と型を持つ、すべての要素が 0 の配列を返します。

numpy.ones(shape, dtype=None, order="C")
引数
名前 デフォルト値
shape int, sequence of ints
返される配列の形状
dtype data-type None
返される配列の型
order {“C”, “F”} “C”
多次元配列の格納形式
返り値
名前 説明
out 指定した形状と型を持つ、すべての要素が 1 の配列

サンプルコード

In [7]:
a = np.ones(5, dtype=int)
print(a)
[1 1 1 1 1]
In [8]:
a = np.ones((5, 5), dtype=float)
print(a)
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]

numpy.ones_like

指定した配列と同じ形状と型を持つ、すべての要素が 1 の配列を返します。

numpy.ones_like(a, dtype=None, order="K", subok=True)
引数
名前 デフォルト値
a array_like
返される配列の形状と型は、a の形状と型で定義されます。
dtype data-type None
指定した場合、返される配列の型を変更します。
order {“C”, “F”, “A”, “K”} “K”
指定した場合、返される配列の格納形式を変更します。
subok bool True
True の場合、返される配列は、指定した配列と同じ配列型を使用します。
返り値
名前 説明
out 指定した配列と同じ形状と型を持つ、すべての要素が 1 の配列

サンプルコード

In [9]:
# 形状 (5, 5) と型 float を持つ配列を作成する。
a = np.random.randn(5, 5)

b = np.ones_like(a)
print(b.shape, b.dtype)
(100, 100) float64

numpy.full

指定した形状と型を持つ、すべての要素が fill_value の配列を返します。

numpy.full(shape, fill_value, dtype=None, order="C")
引数
名前 デフォルト値
shape int, sequence of ints
返される配列の形状
fill_value scalar
要素の値
dtype data-type None
返される配列の型
order {“C”, “F”} “C”
多次元配列の格納形式
返り値
名前 説明
out 指定した形状と型を持つ、すべての要素が fill_value の配列

サンプルコード

In [10]:
a = np.full(5, 7, dtype=int)
print(a)
[7 7 7 7 7]
In [11]:
a = np.full((5, 5), 7, dtype=float)
print(a)
[[7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]]

numpy.full_like

指定した配列と同じ形状と型を持つ、すべての要素が fill_value の配列を返します。

numpy.full_like(a, fill_value, dtype=None, order="K", subok=True)
引数
名前 デフォルト値
a array_like
返される配列の形状と型は、a の形状と型で定義されます。
fill_value scalar
要素の値
dtype data-type None
指定した場合、返される配列の型を変更します。
order {“C”, “F”, “A”, “K”} “K”
指定した場合、返される配列の格納形式を変更します。
subok bool True
True の場合、返される配列は、指定した配列と同じ配列型を使用します。
返り値
名前 説明
out 指定した配列と同じ形状と型を持つ、すべての要素が fill_value の配列

サンプルコード

In [12]:
# 形状 (5, 5) と型 float を持つ配列を作成する。
a = np.random.randn(5, 5)

b = np.full_like(a, 7)
print(b.shape, b.dtype)
print(b)
(5, 5) float64
[[7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]
 [7. 7. 7. 7. 7.]]

numpy.eye

対角線上の要素が 1、それ以外の要素が 0 の 2 次元配列を返します。numpy.identity() と違い、こちらの関数は正方行列以外も作成できる。

numpy.eye(N, M=None, k=0, dtype=<class "float">, order="C")
引数
名前 デフォルト値
N int
返される配列の行数
M int None
返される配列の列数。None の場合、N になります。
k int 0
対角線の位置。0 は主対角線を指し、正の値は上の対角線を指し、負の値は下の対角線を指します。
dtype data-type
返される配列の型
order {“C”, “F”} “C”
多次元配列の格納形式
返り値
名前 説明
I 対角線上の要素が 1、それ以外の要素が 0 の 2 次元配列

サンプルコード

In [13]:
a = np.eye(4, dtype=float)
print(a)
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
In [14]:
a = np.eye(4, 3, dtype=float)
print(a)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]
 [0. 0. 0.]]
In [15]:
a = np.eye(4, k=1, dtype=float)
print(a)
[[0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 0. 0.]]
In [16]:
a = np.eye(4, k=-1, dtype=float)
print(a)
[[0. 0. 0. 0.]
 [1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]]

numpy.identity

対角線上の要素が 1、それ以外の要素が 0 の (n, n) の 2 次元配列を返します。単位行列を作成したい場合はこの関数を利用する。

numpy.identity(n, dtype=None)
引数
名前 デフォルト値
n int
返される配列の行数 (列数)
dtype data-type None
返される配列の型
返り値
名前 説明
out 対角線上の要素が 1、それ以外の要素が 0 の (n, n) の 2 次元配列

サンプルコード

In [17]:
a = np.identity(4, dtype=float)
print(a)
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]