【发布时间】:2020-08-09 08:39:05
【问题描述】:
假设我有一个这样的整数数组:[0,1,2,0,0,1,3]。我怎样才能把它变成一个二进制数组,其非零条目由[0,1,2,0,0,1,3]定义,即:
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 0., 1.]])
我目前正在使用以下代码:
dummy_indices = np.array([0,1,2,0,0,1,3])
dummy_array = np.zeros([dummy_indices.shape[0],(1+np.max(dummy_indices))])
for i in range(dummy_array.shape[0]):
dummy_array[i,dummy_indices[i]] =1
有没有更快的无循环方法?
【问题讨论】:
标签: python arrays numpy numpy-ndarray