例如,我想要一个 2 行矩阵,第一行长度为 1,第二行长度为 2。我可以这样做,
list1 = np.array([1])
list2 = np.array([2,3])
matrix = []
matrix.append(list1)
matrix.append(list2)
matrix = np.array(matrix)
我想知道是否可以直接在程序开头声明一个这种形状的矩阵,而不需要经过上述过程?
最佳答案
矩阵是 by definition数字的矩形数组。 NumPy 不支持非矩形的数组。目前,您的代码生成的是一个数组,其中包含一个列表(matrix
),其中又包含两个数组。
array([array([1]), array([2, 3])], dtype=object)
我真的不明白这个形状的目的是什么,并且建议您只需使用嵌套列表来处理您使用此形状所做的任何事情。如果您发现 NumPy 对此结构有一些用途,您可以更惯用地生成它,如下所示:
>>> np.array([list1,list2])
array([array([1]), array([2, 3])], dtype=object)
关于python - 如何使用 np.array 声明具有不同行长度的二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626576/