[英]Seperate each item in an array
我有两个数组的列表,这是循环的结果,我正在尝试执行以下操作:
由此:
import numpy as np
data=[np.array(['one','two','three']),np.array(['four','five','six'])]
data
这使
[array(['one', 'two', 'three'], dtype='<U5'),
array(['four', 'five', 'six'], dtype='<U4')]
对于这个预期结果:
[array([['one'],
['two'],
['three']], dtype='<U5'),
array([['four'],
['five'],
['six']], dtype='<U4')]
我试过 np.split 但没有达到预期。
我认为您需要的是data
列表中每个元素的np.expand_dims
,如下所示:
import numpy as np
data=[np.array(['one','two','three']),np.array(['four','five','six'])]
data = [np.expand_dims(ele, axis=1) for ele in data]
在评论中,@Tadhg 提议对每个元素进行转置。 乍一看,这似乎是正确的。 但是,一维向量的转置,例如:
array(['one', 'two', 'three'])
很简单:
array(['one',
'two',
'three'])
请注意,向量并没有真正改变,它仍然具有相同的形状(3,)
。 要获得所需的结果,您需要在转置之前引入另一个维度,例如: array([['one', 'two', 'three']])
。 形状为(1, 3)
的数组的转置将具有(3, 1)
的形状,这正是您想要的。 剩下的就是将其应用于数据矩阵中的每个条目:
[np.array([a]).T for a in data]
尝试
[np.array_split(a,len(a)) for a in data]
Numpy 有一个名为array_split()
的默认函数,用于将列表拆分为您想要的多个列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.