python array类型取特定值

本文介绍了如何利用Python的array类型特性,避免使用for循环,提高效率地求解二维数组中特定条件元素的和。通过示例展示了求偶数之和、大于20的偶数之和、能被2或7整除的整数之和以及特定列中特定值元素的行之和的方法。这些方法基于numpy库,通过数组运算实现高效计算。
摘要由CSDN通过智能技术生成

刷Python小屋的时候连续遇到五六道题关于——求array类型二维数组下元素中数值等于特定值的整数之和,这类的问题,整理一下。

传统方法:用for循环来遍历,使用if取特定值

但是这样效率比较低,(Python小屋的题目里不让用for循环),所以本文使用array类型的简便方法。

原理:

#arr为一个array类型的数组
def f(arr):
    return arr%3==0
flag=f(arr) 
print(flag) 
print(arr[f]) #如果flag相同位置上为True,返回arr上元素的值,返回的array形状为(m,1)

 

1.求array类型中所有偶数之和

import numpy as np
def func(arr):
    return sum(arr[arr%2==0])

2. 求array类型中所有大于20的偶数之和

def func(arr):
    arr1=arr[arr>20]
    return arr1[arr1%2==0]

3.返回array数组中所有能被2整除或者被7整除的整数之和

def func(arr):#默认arr是一个整数数组
    p1=arr%2==0
    p2=arr%7==0
    return arr[p1+p2]

 4.返回array类型中下标为col的元素中数值为value的那些行的整数之和

def func(arr,col,value):
    flag=arr[:,col,col+1]==value
    flag=flag.flatten()
    return sum(sum(arr[flag,:]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值