データマイニングツールnumpy(六)Numpy配列間演算
27541 ワード
一、配列と数の計算
二、配列と配列を計算する(ブロードキャストメカニズム)
1は、配列と配列が同じ次元を持つ場合にのみ計算できます.
ブロードキャストの原則は、2つの配列の後縁次元(末尾から計算される次元)の軸長が一致するか、どちらか一方の長さが1である場合、ブロードキャスト互換性があるとみなされ、ブロードキャストは欠落および(または)長さが1の次元で行われる.
2,両配列のshape(形状)が同じである場合,直接対応ビットに対して加減乗除の計算を行うことができる.
3、配列と配列が同じ次元の数字を持つ場合の計算
2つの配列は末尾から始まり、数字が一致する(数字が等しい、または1)場合は計算できます.
三、マトリックス計算
1,行列とは
マトリクス、matrix、arrayの区別マトリクスは2次元でなければなりませんが、arrayは多次元であってもいいです.
2、特徴
行列計算は2次元でなければなりません.(M行、N列)x(N行、L列)=(M行、L列)
3,numpyをマトリクスインスタンスに変換
4,マトリックス計算例
# , 。
# numpy , 。
import numpy as np
temp = np.array([[1,2,3,4],[3,4,5,6],[7,8,9,0]],dtype='i4')
temp1 = temp + 3
temp2 = temp * 3
print(temp,temp.shape,temp.ndim)
print(temp1,temp1.shape,temp1.ndim)
print(temp2,temp2.shape,temp2.ndim)
# -------------output---------------------
[[1 2 3 4]
[3 4 5 6]
[7 8 9 0]] (3, 4) 2
[[ 4 5 6 7]
[ 6 7 8 9]
[10 11 12 3]] (3, 4) 2
[[ 3 6 9 12]
[ 9 12 15 18]
[21 24 27 0]] (3, 4) 2
二、配列と配列を計算する(ブロードキャストメカニズム)
1は、配列と配列が同じ次元を持つ場合にのみ計算できます.
ブロードキャストの原則は、2つの配列の後縁次元(末尾から計算される次元)の軸長が一致するか、どちらか一方の長さが1である場合、ブロードキャスト互換性があるとみなされ、ブロードキャストは欠落および(または)長さが1の次元で行われる.
2,両配列のshape(形状)が同じである場合,直接対応ビットに対して加減乗除の計算を行うことができる.
import numpy as np
temp = np.array([[1,2,3,4],[3,4,5,6],[7,8,9,0]],dtype='i4')
temp1 = temp
temp2 = temp / temp1
print(temp2,temp2.shape,temp2.ndim)
RuntimeWarning: invalid value encountered in true_divide
[[ 1. 1. 1. 1.]
temp2 = temp / temp1
[ 1. 1. 1. 1.]
[ 1. 1. 1. nan]] (3, 4) 2
3、配列と配列が同じ次元の数字を持つ場合の計算
2つの配列は末尾から始まり、数字が一致する(数字が等しい、または1)場合は計算できます.
import numpy as np
temp = np.arange(15)
temp1 = temp.reshape(3,1,5)
temp2 = np.arange(4).reshape(1,4,1)
temp3 = temp1 * temp2
print(temp1)
print(temp2)
print(temp3,temp3.shape,temp3.ndim)
# -------------output---------------------
[[[ 0 1 2 3 4]]
[[ 5 6 7 8 9]]
[[10 11 12 13 14]]]
------------------------------
[[[0]
[1]
[2]
[3]]]
------------------------------
[[[ 0 0 0 0 0]
[ 0 1 2 3 4]-
[ 0 2 4 6 8]
[ 0 3 6 9 12]]
[[ 0 0 0 0 0]
[ 5 6 7 8 9]
[10 12 14 16 18]
[15 18 21 24 27]]
[[ 0 0 0 0 0]
[10 11 12 13 14]
[20 22 24 26 28]
[30 33 36 39 42]]] (3, 4, 5) 3
三、マトリックス計算
1,行列とは
マトリクス、matrix、arrayの区別マトリクスは2次元でなければなりませんが、arrayは多次元であってもいいです.
2、特徴
行列計算は2次元でなければなりません.(M行、N列)x(N行、L列)=(M行、L列)
3,numpyをマトリクスインスタンスに変換
import numpy as np
temp= np.arange(1,11,dtype=np.int32).reshape(2,5)
print(type(temp))
temp = np.mat(temp)
print(temp,type(temp))
# -------------output---------------------
<class 'numpy.ndarray'>
[[ 1 2 3 4 5]
[ 6 7 8 9 10]] <class 'numpy.matrix'>
4,マトリックス計算例
import numpy as np
temp1= np.arange(1,11,dtype=np.int32).reshape(5,2)
temp1 = np.mat(temp1)
print(temp1,type(temp1))
temp2 = np.mat([[1, 2],[3, 4]])
print(temp2,type(temp2))
# total = temp1 * temp2
total = np.dot(temp1,temp2)
print(total)
# -------------output---------------------
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]] <class 'numpy.matrix'>
[[1 2]
[3 4]] <class 'numpy.matrix'>
[[ 7 10]
[15 22]
[23 34]
[31 46]
[39 58]]