python-numpyライブラリ学習ノート2 ndarray配列の作成、次元変換、タイプ変換、リストへの変換
ndarray配列の作成方法
1、pythonのリスト、メタグループなどのタイプからndarray配列を作成する
X=np.array(list/tuple) X=np.Array(list/tuple,dtype=np.float 32)はnp.array()がdtypeを指定しない場合、numpyはデータの状況に応じてdtypeのタイプを関連付けます.リストタイプから配列を作成する メタグループから配列を作成する リストとメタグループの混合から配列 を作成する
2、numpyの関数を使用してndarray配列を作成() np.arange(n)はrange()関数に似ており、0からn-1 までの要素のndarrayタイプを返します. np.ones(shape)はshapeに基づいてすべて1の配列を生成し、shapeはメタグループタイプ である. np.zeros(shape)はshapeに基づいてすべて0の配列を生成し、shapeはメタグループタイプ である. np.full(shape,val)はshapeに基づいて配列を生成し、各要素値はval である. np.eye(n)正方形のn*n単位行列を作成し、対角線が1の残りは0 である. np.ones_like(a)は、配列aの形状に基づいて、全1の配列 を生成する. np.zeros_like(a)配列aの形状に基づいて全0の配列 を生成する. np.full_like(a,val)は配列aの形状に基づいて配列を生成し、各要素値はval である. np.linspace()は、起止データに基づいて等間隔にデータを充填する配列 を形成する. np.concatenate()は、2つ以上の配列を新しい配列に結合する
ndarray配列の次元変換
方法说明reshape(shape)は配列要素を変更せず、元の配列が変わらないshape形状のデータを返す.resize(shape)と.reshape()の機能は一致するが、元の配列を修正する.swapaxes(ax 1,ax 2)は、データnの次元を入れ替える.flatten()配列を次元化し、折り畳まれた1次元配列を返します.元の配列は変わりません.
ndarray配列のタイプ変換
new_a=a.astype(new_type)astype()メソッドでは、2つのタイプが一致していても、元のデータをコピーする新しい配列が必ず作成されます.
ndarray配列からリストへの変換
1、pythonのリスト、メタグループなどのタイプからndarray配列を作成する
X=np.array(list/tuple) X=np.Array(list/tuple,dtype=np.float 32)はnp.array()がdtypeを指定しない場合、numpyはデータの状況に応じてdtypeのタイプを関連付けます.
import numpy as np
x = [0, 1, 2, 3, 6]
a=np.array(x)
print(a)
[0 1 2 3 6]
import numpy as np
y = (4, 5, 6, 8, 5)
a=np.array(y)
print(a)
[4 5 6 8 5]
import numpy as np
x = [0, 1, 2, 3, 6]
y = (4, 5, 6, 8, 5)
a=np.array([x,y])
print(a)
[[0 1 2 3 6]
[4 5 6 8 5]]
2、numpyの関数を使用してndarray配列を作成()
import numpy as np
a=np.arange(10)
print(a)
[0 1 2 3 4 5 6 7 8 9]
import numpy as np
a=np.ones((2, 3))
print(a)
[[1. 1. 1.]
[1. 1. 1.]]
import numpy as np
a=np.ones((2, 3),dtype=np.int32) # int32
print(a)
[[1 1 1]
[1 1 1]]
import numpy as np
a=np.zeros((3, 3))
print(a)
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
import numpy as np
a=np.full((3, 3),5)
print(a)
[[5 5 5]
[5 5 5]
[5 5 5]]
import numpy as np
a=np.full((3,2,5),7)
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]
[7 7 7 7 7]]]
print(a.shape)
(3, 2, 5)
import numpy as np
a=np.eye(4)
print(a)
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
import numpy as np
a=np.full((3,5),7)
print(a)
[[7 7 7 7 7]
[7 7 7 7 7]
[7 7 7 7 7]]
like1=np.ones_like(a)
print(like1)
[[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
like2=np.zeros_like(a)
print(like2)
[[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]]
like3=np.full_like(a,3)
print(like3)
[[3 3 3 3 3]
[3 3 3 3 3]
[3 3 3 3 3]]
import numpy as np
a=np.linspace(0,10,5) #0 10 5
print(a)
[ 0. 2.5 5. 7.5 10. ]
b=np.linspace(5,20,5)
print(b)
[ 5. 8.75 12.5 16.25 20. ]
c=np.concatenate((a,b))
print(c)
[ 0. 2.5 5. 7.5 10. 5. 8.75 12.5 16.25 20. ]
ndarray配列の次元変換
方法说明reshape(shape)は配列要素を変更せず、元の配列が変わらないshape形状のデータを返す.resize(shape)と.reshape()の機能は一致するが、元の配列を修正する.swapaxes(ax 1,ax 2)は、データnの次元を入れ替える.flatten()配列を次元化し、折り畳まれた1次元配列を返します.元の配列は変わりません.
import numpy as np
a=np.ones((2,3,4),dtype=np.int32)
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]]]
b=a.reshape(4,6) # , b
print(b)
[[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]]
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]]]
c=a.resize(3,8) # , c
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]]
print(c) # c ,
None
import numpy as np
a=np.ones((2,2,3),dtype=np.int32)
print(a) #
[[[1 1 1]
[1 1 1]]
[[1 1 1]
[1 1 1]]]
b=a.flatten() # b
print(b) # ,
[1 1 1 1 1 1 1 1 1 1 1 1]
print(a) #
[[[1 1 1]
[1 1 1]]
[[1 1 1]
[1 1 1]]]
ndarray配列のタイプ変換
new_a=a.astype(new_type)astype()メソッドでは、2つのタイプが一致していても、元のデータをコピーする新しい配列が必ず作成されます.
import numpy as np
a=np.ones((3,4),dtype=np.int)
print(a) #
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
b=a.astype(np.float) #
print(b) # b
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
print(a) # a
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
ndarray配列からリストへの変換
ls=a.tolist()
import numpy as np
x1=np.array([1, 2, 3])
x2=x1+3
x3=x1+6
a=np.array((x1,x2,x3))
print(a) #
[[1 2 3]
[4 5 6]
[7 8 9]]
b=a.tolist() #
print(b) # b
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(a) #
[[1 2 3]
[4 5 6]
[7 8 9]]