繁体   English   中英

将数组中的每一项分开

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM