概述
数组过滤
当使用布尔数组作为下标存取数组中的元素时,将收集数组中所有在数组中对应下标为True的元素,复制创建一个新数组。使用布尔数组作为下标获得的数组不和原始数组共享数据空间,这种方式只对应于布尔数组(array),不能使用布尔列表(list)。
例如1:从 arr 数组中提取所有奇数元素。
input:arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
output: #> array([1, 3, 5, 7, 9])
Solution:
#Input
>>> arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#Solution
arr = arr[arr % 2 == 1]
>>> array([1, 3, 5, 7, 9])
例2:多维数组中获取满足条件的部分
a= np.random.randn(3,5)
print(a)
#array([[-0.15049168,
1.19502369, -1.47963323, -1.81756908,
0.32518254],
#
[ 0.09773119,
0.42182331,
0.37434885, -2.21249906,
0.93576516],
#
[ 0.58185452,
1.18987619, -0.85892902,
0.7423596 , -0.24022535]])
print(a[0,4])
#0.3251825354539476
b = a[:,4]==0.3251825354539476
#array([ True, False, False])
c=a[a[:,4]==0.3251825354539476]
print(c)
#array([[-0.15049168,
1.19502369, -1.47963323, -1.81756908,
0.32518254]])
np.where
np.where(condition, x, y)
满足条件(condition),输出x,不满足输出y。
np.where(condition)
只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。
最后
以上就是负责短靴为你收集整理的【numpy】获取数组满足条件的部分的全部内容,希望文章能够帮你解决【numpy】获取数组满足条件的部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复