如何将 numpy 数组转换为 numpy 元组数组?

How to transform numpy array into numpy array of tuples?

在 Python numpy 中,如果我有一个 numpy 数组 np.array([1,2,3])。我怎样才能将它转换成一个 numpy 数组 [(1,1), (2,4), (3,9)]?

这会起作用:

list(zip(a, a*a))

这可能是一种幼稚的方法,但它仍然有效。

lst = np.array([1,2,3])
array = []
for i in lst:
    array.append(tuple((i, i*i)))
dt=np.dtype('int,int')
arr = np.array(array,dtype=dt)
print(arr)
print(type(arr))

它将输出 NumPy 数组

[(1, 1), (2, 4), (3, 9)]

使用理解,如果 na 是任何 numpy 整数数组(如您示例中的数组):

result = np.array( [(i, i*i) for i in na], dtype=[('a','<i4'),('b','<i4')] )