Python查找指定元素的索引(bool索引)

本文通过四个具体示例介绍如何使用Python的NumPy库进行数组元素查找、赋值及统计等操作,包括不同类型的变量赋值方式对数组的影响。

目录

例1:查找指定元素的索引 + 赋值

例2:查找指定元素的索引 + 赋值

例3:查找指定元素的索引 + 统计个数

例4:查找指定元素的索引 + 统计个数


看下面的几个例子,其中例1、例2结合了变量赋值传递时的 传值、传址、深拷贝情况:

 例1:查找指定元素的索引 + 赋值

【注】:下面用 c = a (属于传址、引用、传可变对象),改变 c 也改变原变量 a 的值。

import numpy as np

a = np.random.randint(-2, 2, (1, 10))
print ("随机数组a(前)  :  "+str(a))  #输出数组a(前)
c = a
c[(a==0)] = 999              #条件为a==0
print ("改变指定数值后:  "+str(c))  #输出满足条件的个数
print ("随机数组a(后)  :  "+str(a))  #输出数组a(后)

结果:

随机数组a(前)  :  [[ 1  0 -1 -1  1  0  0  1  0 -1]]
改变指定数值后:  [[  1 999  -1  -1   1 999 999   1 999  -1]]
随机数组a(后)  :  [[  1 999  -1  -1   1 999 999   1 999  -1]]

例2:查找指定元素的索引 + 赋值

【注】:下面用 c = copy.deepcopy(a) (属于传值、深拷贝),改变 c 不改变原变量 a 的值。

import numpy as np
import copy

a = np.random.randint(-2, 2, (1, 10))
print ("随机数组a(前)  :  "+str(a))  #输出数组a(前)
c = copy.deepcopy(a)
c[(a==0)] = 999              #条件为a==0
print ("改变指定数值后:  "+str(c))  #输出满足条件的个数
print ("随机数组a(后)  :  "+str(a))  #输出数组a(后)

结果:

随机数组a(前)  :  [[ 0 -2 -1 -1 -2  1  0 -1 -2 -1]]
改变指定数值后:  [[999  -2  -1  -1  -2   1 999  -1  -2  -1]]
随机数组a(后)  :  [[ 0 -2 -1 -1 -2  1  0 -1 -2 -1]]

例3:查找指定元素的索引 + 统计个数

import numpy as np

a = np.random.randint(-2, 2, (1, 10))
c=np.sum(a>=1)              #条件为a>=1
print ("随机数组a  :  "+str(a))  #输出数组a
print ("大于等于1的个数:  "+str(c))  #输出满足条件的个数

结果:

随机数组a  :  [[-1  0  1  1 -2 -2  1  1  0  1]]
大于等于1的个数:  5

 例4:查找指定元素的索引 + 统计个数

import numpy as np

a = np.random.randint(-2, 2, (1, 10))
c=np.sum(a==0)              #条件为a==0
print ("随机数组a  :  "+str(a))  #输出数组a
print ("等于0的个数:  "+str(c))  #输出满足条件的个数

结果:

随机数组a  :  [[ 0  0 -2 -2 -1 -2  0 -1 -2  0]]
等于0的个数:  4

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值