如何将字符串列表与存储在列表中的 numpy 数组合并
how to merge a list of strings with numpy arrays stored in a list
我有一个 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 中的数组连接起来,非常感谢提前提供的任何帮助。
我们先从列表开始,然后再将每个子列表转换为 np.array
怎么样?我不知道为什么你需要 np.array
而不是使用内置列表,但是在 np.array
中设置 dtype='object'
可以让你存储不同类型的项目。
示例代码
import numpy as np
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.]])]
# Convert each sub array into list
arrs = [A.tolist() for A in arrs]
names = ['group_A', 'group_B', 'group_H']
for A, name in zip(arrs, names):
for A_sub in A:
A_sub.append(name)
# Convert each sub array into numpy array
merged_arrs = [np.array(A, dtype='object') for A in arrs]
print(merged_arrs)
# Outputs:
# [array([[1.0, 0.0, 0.0, 'group_A'], [1.0, 1.0, 1.0, 'group_A']], dtype=object),
# array([[4.0, 4.0, 4.0, 'group_B'], [2.0, 4.0, 0.0, 'group_B']], dtype=object),
# array([[9.0, 0.0, 9.0, 'group_H'], [9.0, 7.0, 5.0, 'group_H']], dtype=object)]
参考
https://numpy.org/doc/stable/reference/arrays.dtypes.html#specifying-and-constructing-data-types
我有一个 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 中的数组连接起来,非常感谢提前提供的任何帮助。
我们先从列表开始,然后再将每个子列表转换为 np.array
怎么样?我不知道为什么你需要 np.array
而不是使用内置列表,但是在 np.array
中设置 dtype='object'
可以让你存储不同类型的项目。
示例代码
import numpy as np
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.]])]
# Convert each sub array into list
arrs = [A.tolist() for A in arrs]
names = ['group_A', 'group_B', 'group_H']
for A, name in zip(arrs, names):
for A_sub in A:
A_sub.append(name)
# Convert each sub array into numpy array
merged_arrs = [np.array(A, dtype='object') for A in arrs]
print(merged_arrs)
# Outputs:
# [array([[1.0, 0.0, 0.0, 'group_A'], [1.0, 1.0, 1.0, 'group_A']], dtype=object),
# array([[4.0, 4.0, 4.0, 'group_B'], [2.0, 4.0, 0.0, 'group_B']], dtype=object),
# array([[9.0, 0.0, 9.0, 'group_H'], [9.0, 7.0, 5.0, 'group_H']], dtype=object)]
参考
https://numpy.org/doc/stable/reference/arrays.dtypes.html#specifying-and-constructing-data-types