【发布时间】:2020-04-15 21:39:15
【问题描述】:
我有一个形状为 (1, m) 的 numpy 数组,每个条目 (n) 都是 0-9 范围内的整数。
我想创建一个形状为 (m, 10) 的新矩阵,其中所有条目均为 0,但第 n 列为 1。
例如:
[2, 3, 1] -> [[0, 0, 1, 0, ...], [0, 0, 0, 1, ...], [0, 1, 0, 0, ...]]
我为它写的代码是:
y_values = np.array([[2, 3, 6, 4, 7]])
y = np.zeros((10, y_values.shape[1]))
for i in range(y_values.shape[1]):
y[y_values[0][i]][i] = 1
有没有办法可以摆脱for 循环,并提高效率?
【问题讨论】:
-
@roy-cha。不要删除你的答案,这完全没问题。我只是说 OP 想使用 10 而不是 max+1。
标签: python numpy numpy-ndarray