【发布时间】:2021-09-05 01:52:05
【问题描述】:
我有一个 numpy 数组列表和一个字符串列表。我想将字符串与数组合并。这些是我的数组和字符串:
arrs=[np.array([[1.,0.,0.], [1.,1.,1.]]), np.array([[4.,4.,4.], [2.,4.,0.]]),\
np.array([[9.,0.,9.], [9.,7.,5.]])]
names=['group_A', 'group_B', 'group_H']
names 中的第一个字符串应添加为arrs 中第一个数组的最后一列。第二个也与第二个数组合并,依此类推。最后,我想合并所有数组并将其获取为:
merged_arrs=[np.array([[1.,0.,0., 'group_A'], [1.,1.,1., 'group_A'],\
[4.,4.,4., 'group_B'], [2.,4.,0., 'group_B'],\
[9.,0.,9., 'group_H'], [9.,7.,5., 'group_H']])]
我不知道如何在 python 中将这些字符串与数组连接起来,提前感谢任何帮助。
【问题讨论】:
-
我确信这确实是您想要做的。一旦你的 numpy 数组混合了 dtype,使用它们就不太容易了。
-
亲爱的@erip,感谢您的提示。那么,是否可以例如首先连接所有数组,然后将每个字符串添加两次(
len of concatenated array / len (names))? -
是的,有可能。同样,在 np 数组中混合 dtype 并没有任何好处。看来您可能想要一个数据框或类似的东西。
-
您可以使用recarray 左右,但同样,您似乎从根本上遇到了XY 问题,并且可能使用了错误的工具来完成这项工作。
标签: python arrays numpy merge concatenation