说明
NumPy 教程 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
对于一个二维数组,以行方向观察,可以看成由一行行列表构成,本例我们来查询对于一个指定的列表,计算它在这个数组中出现的次数。
我们的原数组为:
data = [
[93,102,1],
[93,103,2],
[93,104,1],
[93,105,4],
[93,102,1],
[93,102,4]
]
lst = [93, 102, 1]
期中 data 是二维数组, lst 是我们要查询的列表。
data 其实也是一个列表,每个元素也是由列表组成,我们只需要用列表的 count()
方法进行计算即可:
data.count(lst)
# 2
另外我们可以使用 NumPy,进行操作:
arr = np.array(data)
arr
'''
array([[ 93, 102, 1],
[ 93, 103, 2],
[ 93, 104, 1],
[ 93, 105, 4],
[ 93, 102, 1],
[ 93, 102, 4]])
'''
# 比较操作
arr == lst
'''
array([[ True, True, True],
[ True, False, False],
[ True, False, True],
[ True, False, False],
[ True, True, True],
[ True, True, False]])
'''
(arr == lst).all(1)
# array([ True, False, False, False, True, False])
(arr == lst).all(1).sum()
# 2
上述代码先将 data 构建为 array 数据矩阵对象,然后进行比较操作,会每行对对应值进行比较,返回对应位置的真假值。用数组的 all()
方法判断整行(传入 axis=1,否则按列)是否全相同(相同的返回 True),最后用 sum()
计算出相同的数据,相加计算时,True 为 1,False 为 0。
NumPy 的实现方法在数据工程中经常使用,帮助我们完成大型数据的操作。
(完)
更新时间:2022-02-21 12:35:10 标签:numpy python 数组