python - 如何使用 np.array 声明具有不同行长度的二维数组?

标签 python numpy

例如,我想要一个 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/

相关文章:

python - 为什么 pathlib.Path(__file__).parent.parent 对我的工作目录敏感?

python - 在 Python/Numpy 中实现具有不同系数的简单滤波器的有效方法

python - 我可以在 python 交互模式下有多个 matplotlib 绘图窗口吗?

python - Numpy 2D数组获得总数的百分比

python - 如何在Python中使子进程超时

python - 将一列与包含分类值的多列进行比较,无需循环

python - 当我尝试安装库时如何修复 python 中的 SSL 错误?

javascript - react 路由和django url冲突

Python - 使用 joblib 进行循环并行化

python - 计算图像python中的角度