numpyのarrayについてまとめました。
arrayの生成
リスト
import numpy as np
a = np.array([1, 2, 3, 4])
a
#array([1, 2, 3, 4])
タプルも可
np.array((2, 3, 5, 7))
#array([2, 3, 5, 7])
二重にネストした配列
a = np.array([[11, 12, 13], [22, 33, 44]])
a
"""
array([[11, 12, 13],
[22, 33, 44]])
"""
リストの要素にarrayを入れても大丈夫
a = np.array([1, 1, 2, 3])
b = np.array([a, [5, 8, 13, 21]])
b
"""
array([[ 1, 1, 2, 3],
[ 5, 8, 13, 21]])
"""
arange()で公差を指定して等差数列をつくる
#np.arange(start, stop, step)
a = np.arange(100, 150, 13)
a
#array([100, 113, 126, 139])
linspace()で要素数を指定して等差数列をつくる。start、stop、num(要素数)に応じた公差が自動的に算出される。
#np.linspace(start, stop, num(要素数))
a = np.linspace(0, 10, 5)
a
#array([ 0. , 2.5, 5. , 7.5, 10. ])
全て0のarray
np.zeros(4)
#array([0., 0., 0., 0.])
全て1のarray
np.ones(4)
#array([1., 1., 1., 1.])
zeros()、ones()にタプルを入れると多次元のarrayが返ってくる
np.zeros((4,4))
"""
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
"""
np.ones((2,3))
"""
array([[1., 1., 1.],
[1., 1., 1.]])
"""
空の要素のarrayをつくる。空と0は違う
np.empty((3,3))
"""
array([[3.69634383e-316, 1.77863633e-322, 0.00000000e+000],
[0.00000000e+000, 1.41370663e+190, 1.76009029e-076],
[2.10653491e-052, 4.26881386e-090, 2.90130388e-057]])
"""
単位行列をつくる
np.eye(5)
"""
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
"""
要素の並びはそのままにして、次元や縦横の要素数をかえる
a = np.arange(0, 15, 1)
a
#array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
a.reshape(3, 5)
"""
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14]])
"""
a.reshape(3, 5)
"""
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
"""
乱数
np.random.random((4, 4))
"""
array([[0.57205309, 0.23118043, 0.57137678, 0.5490131 ],
[0.86643899, 0.44057519, 0.11017304, 0.47788537],
[0.00391567, 0.74101721, 0.8236279 , 0.45663018],
[0.24658771, 0.48127278, 0.7861596 , 0.75493337]])
"""
各成分を関数で指定
def f(i, j):
return i + j
np.fromfunction(f, (4, 3))
"""
array([[0., 1., 2.],
[1., 2., 3.],
[2., 3., 4.],
[3., 4., 5.]])
"""
要素、行、列を取り出す
インデックスで指定
a = np.arange(0, 12, 1).reshape(3,4)
a
"""
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
"""
a[0, 2]
#2
スライスで指定
a[1:2]#1行目から2行目(終わりは含まない)
#array([[4, 5, 6, 7]])
a[1:3, 0:3]#1行目から3行目、0列目から3列目まで
"""
#array([[ 4, 5, 6],
[ 8, 9, 10]])
"""
a[2, :]#行だけ取得
#array([ 8, 9, 10, 11])
a[:, 3]#列だけ取得
#array([ 3, 7, 11])
arrayの属性
属性ndimで次元数を整数で取得できる。
a = np.arange(0, 12, 1).reshape(3,4)
a
"""
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
"""
a.ndim
#2
type(a.ndim)
#int
属性shapeで各次元のサイズをタプルで取得できる。
a.shape
#(3, 4)
type(a.shape)
#tuple
属性sizeで全要素数を整数で取得できる。
a.size
#12
type(a.size)
#int