目录
看下面的几个例子,其中例1、例2结合了变量赋值传递时的 传值、传址、深拷贝情况:
【注】:下面用 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]]
【注】:下面用 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]]
- 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
- 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