在Python中计算数组元素[重复]
Posted
技术标签:
【中文标题】在Python中计算数组元素[重复]【英文标题】:Counting array elements in Python [duplicate] 【发布时间】:2010-09-16 07:00:28 【问题描述】:如何计算数组中元素的个数,因为与逻辑相反,array.count(string)不计算数组中的所有元素,它只是搜索字符串出现的次数。
【问题讨论】:
这并不是真正重复计算列表中的元素,因为数组可能是更高维的,对吧?数组的len()
不是数组中元素的数量,除非数组是一维数组。您可能会争辩说列表的列表也是更高维度的,但***列表的优先级更明确。对于这个***列表,元素的数量就是它的len()
,因为它基本上是一维的。
np.ndarray.size 不会做你想做的事吗?例如。 a= np.ones((3,5,4,8))
给出的数组维度为 3,5,4,8,因此有 3*5*4*8 =480 个元素。执行 a.size
返回 480。请参阅 https://numpy.org/doc/stable/reference/generated/numpy.ndarray.size.html。我会将其添加为答案,但 Q 已作为重复项关闭,即使它与其他问题不同。
【参考方案1】:
len() 方法返回列表中元素的数量。
语法:
len(myArray)
例如:
myArray = [1, 2, 3]
len(myArray)
输出:
3
【讨论】:
这仅适用于平面的一维列表或数组,但print len([[0, 0], [0, 0]])
和 len(array([[0, 0], [0, 0]]))
一样输出为 2。
数组的索引怎么样?例如,当我循环该数组时,我会得到一些索引以及如何知道索引中有多少?【参考方案2】:
或者,
myArray.__len__()
如果你想成为 oopy; “len(myArray)” 更容易输入! :)
【讨论】:
@Gregg Lind,这不会引入竞争条件。 (然而,它是那么令人讨厌。) 比赛条件是我和另一张海报!请注意下面我的更多被否决的答案! (我现在意识到,我的答案被删除了,但基本上 Kevin Little 和我同时说了同样的话)。 ...逃跑,逃跑!【参考方案3】:len
是一个内置函数,它调用给定容器对象的__len__
成员函数来获取对象中的元素数量。
用双下划线括起来的函数通常是实现 Python 中标准接口之一(容器、数字等)的“特殊方法”。通过语法糖使用特殊方法(对象创建、容器索引和切片、属性访问、内置函数等)。
使用obj.__len__()
不会是使用特殊方法的正确方法,但我不明白为什么其他人被修改了这么多。
【讨论】:
特别是当我们俩都提到那是不好的形式时。了解长度“真正”的作用本身就很重要。【参考方案4】:在我看到这个之前,我想,“我需要想办法做到这一点!”
for tempVar in arrayName: tempVar+=1
然后我想,“一定有更简单的方法来做到这一点。”我是对的。
len(arrayName)
【讨论】:
【参考方案5】:如果您有一个多维数组, len() 可能无法为您提供所需的值。例如:
import numpy as np
a = np.arange(10).reshape(2, 5)
print len(a) == 2
这个代码块会返回true,告诉你数组的大小是2。然而,这个二维数组实际上有10个元素。在多维数组的情况下, len() 为您提供数组的 first 维的长度,即
import numpy as np
len(a) == np.shape(a)[0]
获取任意形状的多维数组的元素个数:
import numpy as np
size = 1
for dim in np.shape(a): size *= dim
【讨论】:
这看起来真的很有用,但是 np 的初始化是什么?如果我将它初始化为一个空列表,那么 python 会说'list' object has no attribute 'arrange'
@russellmania import numpy as np
已编辑以包含 numpy 导入以上是关于在Python中计算数组元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章