在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中计算数组元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在foreach中计算数组

在 C# 中计算数组频率分布的最快方法是啥?

Python(66)_判断用户传入的参数str中计算数字,字母,空格,以及其他的个数,并返回结果

在 MS Access 查询中计算数字的幂

python3检查列表、元组、字符串中的重复元素

python多个列表的的元素组合成一个列表