【问题标题】:len() of a numpy array in python [duplicate]python中numpy数组的len()
【发布时间】:2017-08-22 06:00:34
【问题描述】:

如果我使用len(np.array([[2,3,1,0], [2,3,1,0], [3,2,1,1]])),我会返回 3。

为什么len() 没有关于我想要多维数组中哪个轴的长度的参数?这是令人震惊的。有其他选择吗?

【问题讨论】:

  • 只需在每一行上应用len 函数并在上面运行max
  • array.shape[i]i 表示相关轴,应该可以正常工作。

标签: python numpy multidimensional-array variable-length


【解决方案1】:

简单。使用.shape

>>> nparray.shape
(5, 6) #Returns a tuple of array dimensions.

【讨论】:

    【解决方案2】:

    如果想得到另一个维度的长度,可以转置数组。

    len(np.array([[2,3,1,0], [2,3,1,0], [3,2,1,1]]).T)
    

    【讨论】:

    • 获得反对票的原因是它是一种复杂的看待事物的方式。应用len 时,您应该得到长度,并且不必怀疑数学恒等式来理解 len(transpose) 代表什么。此外,这不适用于 len(arr.shape) > 2
    【解决方案3】:

    等效嵌套列表的len 是什么?

    len([[2,3,1,0], [2,3,1,0], [3,2,1,1]])
    

    有了shape这个更一般的概念,numpy开发者选择实现__len__作为第一个维度。 Python 将len(obj) 映射到obj.__len__

    X.shape 返回一个元组,它确实有一个len - 这是维数X.ndimX.shape[i] 选择 ith 维度(元组索引的直接应用)。

    【讨论】:

    • 请注意,这与 MATLAB 的行为不同。在 MATLAB 中,多维数组的“长度”是沿最长维度的长度(可以通过 Python 中的max(x.shape) 计算)。 (请参阅文档:mathworks.com/help/matlab/ref/length.html。)
    猜你喜欢
    • 2019-02-28
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多