我有两个数组的列表,这是循环的结果,我正在尝试执行以下操作:由此:import numpy as npdata=[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 但没有达到预期效果。
3 回答
![?](http://img1.sycdn.imooc.com/54584f240001db0a02200220-100-100.jpg)
侃侃尔雅
TA贡献1801条经验 获得超16个赞
我认为您需要的是列表np.expand_dims中的每个元素,data如下所示:
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]
![?](http://img1.sycdn.imooc.com/5458463b0001358f02200220-100-100.jpg)
慕森王
TA贡献1777条经验 获得超3个赞
如:
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]
![?](http://img1.sycdn.imooc.com/533e4c1500010baf02200220-100-100.jpg)
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
尝试
[np.array_split(a,len(a)) for a in data]
Numpy 有一个默认函数,用于array_split()
将列表拆分为您想要的列表数量。
添加回答
举报
0/150
提交
取消