例如,我想要一个2行矩阵,第一行的长度为1,第二行的长度为2。

list1 = np.array([1])

list2 = np.array([2,3])

matrix = []

matrix.append(list1)

matrix.append(list2)

matrix = np.array(matrix)


我想知道是否可以在不执行上述过程的情况下直接在程序开始时声明这种形状的矩阵吗?

最佳答案

矩阵是数字的矩形数组。 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/

10-16 12:58
查看更多