Numpyの一般的な関数のまとめ

3210 ワード

1、np.argmax()、np.max()、np.argmin()、np.min()の使い方:
2、np.where(condition[, x, y])
3、np.randomにおけるshuffleとpermutationの違い
4、np.ascontiguousarray():受信した配列と同様のメモリ内の連続配列を返します.
5、np.Empty():初期化されていない配列を返し、その値はランダムです.
6、np.newaxis:配列に軸を追加する
7、np.tile():マトリクスを横、縦にコピーする
8、np.sort()とnp.argsort():最初は小さいものから大きいものへのソート値を返し、2番目は小さいものから大きいものへのインデックスを返します.
9、np.Cumsum():現在の列の前と現在の列に追加された配列を返します.
1、np.argmax()、np.max()、np.argmin()、np.min()の使い方:
argmaxは最大数のインデックスを返す.argmaxにはパラメータaxisがあり、デフォルトは0です.2 Dの場合は次のようになります.
a = np.array([[1, 5, 5, 2],
              [9, 6, 2, 8],
              [3, 7, 9, 1]])
print(np.argmax(a, axis=0))
[1,2,2,1]  #                 

a = np.array([[1, 5, 5, 2],
              [9, 6, 2, 8],
              [3, 7, 9, 1]])
print(np.argmax(a, axis=1))
[1,0,2]   #                 

argmax()は要素のインデックスを返し、max()は要素値を返し、maxの使い方はargmaxと似ており、axisのパラメータもあります.同じ理屈でargmin()とmin()も同じ使い方です.
2、np.where(condition[, x, y])
1)ここでx,yはオプションパラメータ,conditionは条件,この3つの入力パラメータはarray_likeの形式;また、3つの次元は同じ2)conditonのある位置がtrueの場合、xの対応する位置の要素を出力し、そうでなければyの対応する位置の要素を選択する.3)パラメータconditionのみの場合、関数はtrueの要素の座標位置情報を返す.
x = np.arange(9.).reshape(3, 3)
[[0. 1. 2.]
 [3. 4. 5.]
 [6. 7. 8.]]
print (np.where( x > 5 ))
(array([2, 2, 2]), array([0, 1, 2]))

      :
x[2, 0], x[2, 1], x[2, 2]

3、np.randomにおけるshuffleとpermutationの違い
関数np.shuffle()とnp.permutation()は、元の配列を再洗浄する(すなわち、元の要素の順序をランダムに乱す)ことであり、違いは:
shuffleは直接元の配列で操作し,元の配列の順序を変更し,戻り値がない.permutationは元の配列で直接操作するのではなく,新しい順序を乱す配列を返し,元の配列を変更しない.
4、np.ascontiguousarray():受信した配列と同様のメモリ内の連続配列を返します.
 x = np.arange(6).reshape(2,3)
 print (np.ascontiguousarray(x, dtype=np.float32))
 print (x.flags['C_CONTIGUOUS'])

  :
[[0. 1. 2.]
 [3. 4. 5.]]
True

5、np.Empty():初期化されていない配列を返し、その値はランダムです.
print (np.empty([2, 2]))

  :
[[ 0.00000000e+000 -8.77796459e-313]
 [ 1.40447433e-311  6.17582057e-322]]

6、np.newaxis:配列に軸を追加する
x = np.arange(3) 
print (x)
y=x[:, np.newaxis]
print (y)

  :
array([0, 1, 2])
array([[0], [1], [2]])

7、np.tile():マトリクスを横、縦にコピーする
a=np.array([[1,2], [3, 4]])
print (a)
[[1 2]
 [3 4]]
print (np.tile(a, (1, 4)))  #             4 
[[1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]]
print (np.tile(a, (3, 1)))  #             3 
[[1 2]
 [3 4]
 [1 2]
 [3 4]
 [1 2]
 [3 4]]
print (np.tile(a, (3, 4)))  #          4 ,         3 
[[1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]
 [1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]
 [1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]]

8、np.sort()とnp.argsort():最初は小さいものから大きいものへのソート値を返し、2番目は小さいものから大きいものへのインデックスを返します.
a=np.array([1,3,2,4])    
print (np.sort(a))     #          
[1 2 3 4]
print (np.argsort(a))  #            
[0 2 1 3]
print (np.argsort(-a)) #            
[3 1 2 0]

9、np.Cumsum():現在の列の前と現在の列に追加された配列を返します.
a=[1,2,3,4,5,6,7]
print (np.cumsum(a))
[ 1  3  6 10 15 21 28]
c=[[1,2,3],[4,5,6],[7,8,9]]
print (np.cumsum(c,axis=0))  # 0(     ,     )
[[ 1  2  3]
 [ 5  7  9]
 [12 15 18]]
print (np.cumsum(c,axis=1))  # 1(      ,     )
[[ 1  3  6]
 [ 4  9 15]
 [ 7 15 24]]