目录
看下面的几个例子,其中例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