簡體   English   中英

有沒有辦法在 Python 中將多維數組重塑為一維向量?

[英]Is there a way of reshaping a multidimensional array into a 1-D Vector in Python?

所以我試圖改變這個陣列

   array([[1., 0., 0., 0., 0., 0., 0., 0., 0.,0.],
          [0., 0., 0., 1., 0., 0., 0., 0., 0.,0.],
          [0., 0., 0., 0., 0., 0., 0., 0., 0.,1.],
          [0., 0., 0., 0., 0., 0., 1., 0., 0.,0.]])
          [1., 0., 0., 0., 0., 0., 0., 0., 0.,0.]])

進入這個數組

   array([ 0, 4, 9, 6, 0])

因此,原始數組的每一行都被替換為一個值,該值等於“1”在行中的位置。

您可以使用numpy.argmax

a = np.array([[1., 0., 0., 0., 0., 0., 0., 0., 0.,0.],
          [0., 0., 0., 1., 0., 0., 0., 0., 0.,0.],
          [0., 0., 0., 0., 0., 0., 0., 0., 0.,1.],
          [0., 0., 0., 0., 0., 0., 1., 0., 0.,0.],
          [1., 0., 0., 0., 0., 0., 0., 0., 0.,0.]])

print( np.argmax(a, axis=1) )

印刷:

[0 3 9 6 0]

嘗試這個:

array = np.array([[1., 0., 0., 0., 0., 0., 0., 0., 0.,0.],
          [0., 0., 0., 1., 0., 0., 0., 0., 0.,0.],
          [0., 0., 0., 0., 0., 0., 0., 0., 0.,1.],
          [0., 0., 0., 0., 0., 0., 1., 0., 0.,0.],
          [1., 0., 0., 0., 0., 0., 0., 0., 0.,0.]])
          
print(np.where(array == 1)[1]

輸出:

array([0, 3, 9, 6, 0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM