【问题标题】:Numpy convert 10 base number to a bit flag in 10 sized array [duplicate]Numpy将10个基数转换为10个大小的数组中的位标志[重复]
【发布时间】:2025-12-29 04:55:12
【问题描述】:

我有 0-9 范围内的 numpy 数字数组,我想将这些数字转换为所述数字索引中的“标志”。以下代码正是我想要的:

In [1]: import numpy as np

In [2]: a = np.array([5, 2, 7])

In [3]: b = np.zeros((3, 10))

In [4]: for i in range(a.shape[0]):
   ...:     b[i][a[i]] = 1
   ...:

In [5]: b
Out[5]:
array([[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
       [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.]])

但我想知道这种转换叫什么,有没有一种 Numpy 方法可以做到这一点?

【问题讨论】:

  • b[np.arange(3), a] = 1

标签: python arrays numpy


【解决方案1】:

尝试使用np.arange

b[np.arange(a.shape[0]), a] = 1

【讨论】:

    最近更新 更多