python - 解压缩通用数组的 numpy 数组形状

标签 python numpy

一个例子:

    >>> import numpy as np    
    >>> list = [1,2,3,4]
    >>> array = np.asarray(list)
    >>> np.shape(array)
    (4,)

现在假设我要处理一个通用数组,并将行数和列数分别读入变量 mn,我会这样做:

>>> m, n = np.shape(array)

但这会导致错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack

对于上面的例子。在我上面的示例中,我认为 m=1n = 4 会是一个合适的结果。我错过了什么?

最佳答案

您的数组有 ndim=1,这意味着 len(array.shape)==1。因此,您不能将 shape 元组解压为 length==2。

要“拉伸(stretch)”您的数组以使其具有 2dim,以防它当前具有更少的空间,请使用 np.atleast_2d .

>>> x = np.arange(3.0)
>>> y = np.atleast_2d(x)
>>> y
array([[ 0.,  1.,  2.]])
>>> m, n = y.shape

顺便说一句,listarray 不是 python 中变量的好名称。

关于python - 解压缩通用数组的 numpy 数组形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571971/

相关文章:

python - ndb 事务支持更新/回滚同一事务中的多个 ndb 模型条目

python - Pandas set_index 不会删除该列

python - 将一维 numpy 数组转换为矩阵的顶部三角形

python - 使用 ArrayLike 时出现 Mypy 错误

python - Keras InvalidArgumentError 未知输入节点

python - 如何使用scrapy在Python中抓取url

python - 使用 Python 缩放日期范围

python - reshape numpy为滞后值添加额外维度

python - 如何直接复制 np.random 结果?

python - 使用 Numpy 按行缩放