配列の次元を増やす Numpy の操作

他のことは何も言わず、理解するために例を挙げてください。

a は 1 次元配列です

a = np.array([0.0, 10.0, 20.0, 30.0])
print(a.shape,a[:, np.newaxis],a[:, np.newaxis].shape)

#输出
(4,) 

[[ 0.]
 [10.]
 [20.]
 [30.]]

 (4, 1)

aに4行1列の次元を追加するということですが、別の方向はどうなるでしょうか?

print(a.shape,a[np.newaxis,:],a[ np.newaxis,:].shape)

#输出
(4,) [[ 0. 10. 20. 30.]] (1, 4)

1 行 4 列のディメンションを a に追加することを示します。np.newaxis が前にある場合はディメンションが前に挿入され、そうでない場合はその逆であると結論付けることができます。二次元で見てみましょう。

a は、2 行 4 列の 2 次元配列 (2, 4) です。

a = np.array([[0.0, 10.0, 20.0, 30.0],[1,2,3,4]])
print(a.shape,a[:, np.newaxis],a[:, np.newaxis].shape)

'''
输出
[[[ 0. 10. 20. 30.]]

 [[ 1.  2.  3.  4.]]]

 (2, 1, 4)
                                            
 二维变成三维,a[:, np.newaxis],在后增加一个维度 
 '''                                   
                                            
print(a.shape,a[np.newaxis,:],a[ np.newaxis,:].shape)

'''
输出
[[[ 0. 10. 20. 30.]
  [ 1.  2.  3.  4.]]] 
                                             
 (1, 2, 4)

二维变成三维,a[np.newaxis,:]在前增加一个维度
'''

そして、3 次元以上の類似点について、読者は理解を深めることができます。

例を挙げる!

異なる次元の配列を追加します。

a = np.array([0.0, 10.0, 20.0, 30.0])
b = np.array([1.0, 2.0, 3.0])
print(a[:, np.newaxis] + b)


'''
输出

[[ 1.  2.  3.]
 [11. 12. 13.]
 [21. 22. 23.]
 [31. 32. 33.]]

'''  

ここで、newaxis インデックス演算子は新しい軸を に挿入し、2 次元の 4x1 配列にします。4x1 配列と b、形状 (3,) を組み合わせると、A の 4x3 配列が生成されます。 

np.expand_dims は配列の形状を拡張するために使用されます

a = np.array([[[1,2,3],[4,5,6]]])
print(a.shape)  #(1, 2, 3)
b=np.expand_dims(a, axis=0) #表示在0位置添加维数
print(b,b.shape)  #(1, 1, 2, 3)    0,1,2,3以此类推。 

输出:

(1, 2, 3)

[[[[1 2 3]
   [4 5 6]]]]

 (1, 1, 2, 3)

Supongo que te gusta

Origin blog.csdn.net/weixin_48266700/article/details/123697184
Recomendado
Clasificación