有没有办法在 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])