Numpy数组的基本运算

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]

你可能感兴趣的:(Numpy)