【发布时间】:2020-12-01 02:08:41
【问题描述】:
我有一个带有np.shape(input)=(a,b) 的二维数组,看起来像
input=array[array_1[0,0,0,1,0,1,2,0,3,3,2,...,entry_b],...array_a[1,0,0,1,2,2,0,3,1,3,3,...,entry_b]]
现在我想创建一个数组np.shape(output)=(a,b,b),其中输入中具有相同值的每个条目都获得值 1,否则为 0
例如:
input=[[1,0,0,0,1,2]]
output=[array([[1., 0., 0., 0., 1., 0.],
[0., 1., 1., 1., 0., 0.],
[0., 1., 1., 1., 0., 0.],
[0., 1., 1., 1., 0., 0.],
[1., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 1.]])]
到目前为止,我的代码如下所示:
def get_matrix(svdata,padding_size):
List=[]
for k in svdata:
matrix=np.zeros((padding_size,padding_size))
for l in range(padding_size):
for m in range(padding_size):
if k[l]==k[m]:
matrix[l][m]=1
List.append(matrix)
return List
但形状为 (2000,256) 的输入数组需要 2:30 分钟。如何使用内置的 numpy 解决方案提高效率?
【问题讨论】:
标签: python arrays numpy data-science