import numpy as np
对应元素进行四则运算
a = np.arange(3,8)
b = np.arange(1,6)
print("a=",a)
print("b=",b)
print("a+b=",a+b)
print("a-b=",a-b)
print("a/b=",a/b)
print("a*b=",a*b)
a= [3 4 5 6 7]
b= [1 2 3 4 5]
a+b= [ 4 6 8 10 12]
a-b= [2 2 2 2 2]
a/b= [ 3. 2. 1.66666667 1.5 1.4 ]
a*b= [ 3 8 15 24 35]
关于矩阵乘法
对应元素进行比较
a = np.arange(3,8)
b = np.arange(1,6)
a==b
array([False, False, False, False, False], dtype=bool)
数组比较
np.array_equal(a,b)
False
any函数与all函数
a = np.array([1,3,2,5,7])
b = np.array([1,2,3,7,5])
print(a==b)
print(np.any(a==b)) # 存在一个true,则返回true
print(np.all(a==b)) # 所有全为true,则返回true
[ True False False False False]
True
False
比较两数组是否相近(往往是同一个数组由于计算精度不同所有略有差别)
a = np.array([[1.,1.,1.],
[2.,2.,2.],
[3.,3.,3.]])
b = a.copy()
b[0,0] = 0.99999
print("a=",a)
print("b=",b)
print(np.allclose(a,b))
a= [[ 1. 1. 1.]
[ 2. 2. 2.]
[ 3. 3. 3.]]
b= [[ 0.99999 1. 1. ]
[ 2. 2. 2. ]
[ 3. 3. 3. ]]
True
Python中的and、or、not等关键字无法被重载,因此Numpy提供了额外的函数:np.logical_and、np.logical_not、np.logical_or、np.logical_xor
a = np.arange(5)
b = np.arange(4,-1,-1)
print(a)
print(b)
print(np.logical_or(a==b,a > b))
[0 1 2 3 4]
[4 3 2 1 0]
[False False True True True]
位运算符&、|、~、^等价于布尔运算,其可以进行重载,因此可以直接应用于Numpy数组
(a==b)|(a>b)
array([False, False, True, True, True], dtype=bool)
print(np.arange(5))
print(~np.arange(5)+1)#按位“取反加1”得到负数的补码
[0 1 2 3 4]
[ 0 -1 -2 -3 -4]