我有一个numpy数组Z1,Z2,Z3:
Z1 = [1,2,3]
Z2 = [4,5]
Z3 = [6,7,8,9]
我想要新的numpy数组Z,其Z1,Z2,Z3为数组,如:
Z = [[1,2,3],[4,5],[6,7,8,9]
print(type(Z),type(Z[0]))
>>> <class 'numpy.ndarray'> <class 'numpy.ndarray'>
我使用了np.append,hstack,vstack,insert,concatenate ......但是我都失败了
只有2个案例:
Z = [1,2,3,4,5,6,7,8,9]
或错误
所以我首先列出了一个列表Z,然后追加列表Z1,Z2,Z3,然后将列表Z转换为numpy数组Z.
但
Z = [[1,2,3],[4,5],[6,7,8,9]]
print(type(Z),type(Z[0]))
>>> <class 'numpy.ndarray'> <class 'list'>
我想不要使用'while'或'for'。请帮帮我..
答案 0 :(得分:1)
尝试
import numpy as np
Z1 = [1,2,3]
Z2 = [4,5]
Z3 = [6,7,8,9]
Z = np.array([Z1, Z2, Z3])
print(Z)
print(type(Z))
这会将您的列表列表转换为numpy数组
答案 1 :(得分:1)
首先,Z
是一个列表清单:
In [33]: Z = [[1,2,3], [4,5], [6,7,8,9]]
这是一个列表数组 - 请注意dtype。但请记住,np.array([[1,2,3],[4,5,6]])
将生成dtype int的二维数组。
In [34]: np.array(Z)
Out[34]: array([[1, 2, 3], [4, 5], [6, 7, 8, 9]], dtype=object)
创建对象dtype数组的最可靠方法,给定形状是初始化它,然后填充它:
In [35]: out = np.zeros((3,), dtype=object)
In [36]: out[...] = Z
In [37]: out
Out[37]: array([[1, 2, 3], [4, 5], [6, 7, 8, 9]], dtype=object)
这又是一个列表数组。要创建一个数组数组,我们首先要创建一个数组列表:
In [38]: out[...] = [np.array(x) for x in Z]
In [39]: out
Out[39]: array([array([1, 2, 3]), array([4, 5]), array([6, 7, 8, 9])], dtype=object)
对象数组是笨拙的野兽,不是完全列表而不是(常规)数组。
答案 2 :(得分:0)
你不能制作那个阵列。数组中的数组与数组中的矩阵类似。它们必须是 m 行,每行都有 n 列。使用列表列表或np.array
s
答案 3 :(得分:0)
首先,我制作了&#34; numpy array&#34; Z1,Z2,Z3并将它们放入&#34; list&#34; Z.列表中有数组。
其次,我转换&#34; list&#34; Z进入&#34; numpy array&#34; Z.它是我想要的数组中的数组。