python-3.x 如何将两个NumPy数组编织在一起

swvgeqrz  于 2023-03-31  发布在  Python
关注(0)|答案(2)|浏览(110)

我有两个NumPy数组,它们的形状都是(N,3)。每个数组的长度相同,但它们是随机生成的,所以每次运行时长度都不同。我想迭代两个数组的每个索引并将它们编织在一起。例如,如果N=2,它应该看起来像这样:

(((1,2,3), (4,5,6)), ((7,8,9), (10,11,12)))

我还需要将它们转换为字符串。我如何格式化数组并转换它们?

eh57zj3b

eh57zj3b1#

你可以使用zip函数迭代两个数组的索引,并将它们编织在一起。下面是一个示例代码片段,演示了如何实现这一点:

import numpy as np

# Generate two arrays with shape (N, 3)
N = 2
array1 = np.random.rand(N, 3)
array2 = np.random.rand(N, 3)

# Weave the two arrays together using zip
weaved_array = list(zip(array1, array2))

# Convert the weaved array to a string
weaved_string = str(weaved_array)

# Print the weaved string
print(weaved_string)

这将输出一个字符串,看起来像这样:
[((array1[0]),(array2[0])),((array1[1]),(array2[1]))]
注意,数组被括在圆括号中,而编织数组被括在方括号中。如果你想要一个稍微不同的格式,你可以相应地修改str函数调用。

yqlxgs2m

yqlxgs2m2#

你可以使用hstackravel来获得一个编织的1D数组。然后你可以将每个元素转换为char并连接形成一个字符串。

N = 2
a= np.random.rand(N, 3) # np.array([[1,2,3],[4,5,6]])
b = np.random.rand(N, 3) # np.array([[7,8,9],[10,11,12]])
# Stack horizontally and ravel to get weaved 1D array
w = np.hstack((a,b)).ravel()
# array([ 1,  2,  3,  7,  8,  9,  4,  5,  6, 10, 11, 12])
# Convert each element to character
sw = np.char.mod('%i',w)
# join with blank delimiter to get string
res = ''.join(sw)

相关问题