【发布时间】:2021-03-14 04:06:24
【问题描述】:
我有一个大小为 n 的 NumPy 数组 Y,包括整数。
Y = [1 1 2 0 ..... ]
如果不使用循环,是否可以形成一个矩阵(k, n),使得每列在索引位置Y[i] 和0 其他地方都有1?
【问题讨论】:
-
k的定义是什么? -
向我们展示循环尝试。
标签: python-3.x numpy matrix
我有一个大小为 n 的 NumPy 数组 Y,包括整数。
Y = [1 1 2 0 ..... ]
如果不使用循环,是否可以形成一个矩阵(k, n),使得每列在索引位置Y[i] 和0 其他地方都有1?
【问题讨论】:
k的定义是什么?
标签: python-3.x numpy matrix
我假设n 是Y 的长度(比如说len(Y)=4),k 可以是任意数字或np.max(Y) + 1(这里是k=3)。
import numpy as np
Y = np.array([1, 1, 2, 0])
k = np.max(Y) + 1
n = len(Y)
matrix = np.zeros((k, n))
matrix[Y, np.arange(0, n)] = 1
print(matrix)
输出:
# When k = np.max(Y) + 1
[[0. 0. 0. 1.]
[1. 1. 0. 0.]
[0. 0. 1. 0.]]
# When k = 5 (an arbitrary number)
[[0. 0. 0. 1.]
[1. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
【讨论】: