为了账号安全,请及时绑定邮箱和手机立即绑定

分隔数组中的每个项目

分隔数组中的每个项目

慕哥6287543 2023-08-08 17:52:46
我有两个数组的列表,这是循环的结果,我正在尝试执行以下操作:由此: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 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

我认为您需要的是列表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]


查看完整回答
反对 回复 2023-08-08
?
慕森王

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]


查看完整回答
反对 回复 2023-08-08
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

尝试

[np.array_split(a,len(a)) for a in data]

Numpy 有一个默认函数,用于array_split()将列表拆分为您想要的列表数量。


查看完整回答
反对 回复 2023-08-08
  • 3 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信