基本运算
ndarray支持加减乘除算术运算,同时还支持大于小于以及等等与比较运算。
import numpy as np
x = np.arange(3, 15).reshape((3, 4))
y = x > 5
x
# [[ 3 4 5 6]
# [ 7 8 9 10]
# [11 12 13 14]]
y
# [[False False False True]
# [ True True True True]
# [ True True True True]]
na1 = np.array([
[1, 2, 3],
[2, 5, 7],
[3, 8, 6]
])
na2 = np.array([
[3, 1, 2],
[9, 5, 2],
[4, 5, 7]
])
# 相同维度的数组之间可以直接做加减乘除等算术运算
print(na1 + na2)
# [[ 4 3 5]
# [11 10 9]
# [ 7 13 13]]
print(na1 - na2)
# [[-2 1 1]
# [-7 0 5]
# [-1 3 -1]]
print(na1 * na2)
# [[ 3 2 6]
# [18 25 14]
# [12 40 42]]
print(na1 / na2)
# [[0.33333333 2. 1.5 ]
# [0.22222222 1. 3.5 ]
# [0.75 1.6 0.85714286]]
# 数组可以直接和数字做加减乘除运算
print(na1 + 5)
# [[ 6 7 8]
# [ 7 10 12]
# [ 8 13 11]]
print(na1 - 3)
# [[-2 -1 0]
# [-1 2 4]
# [ 0 5 3]]
print(na1 * 2)
# [[ 2 4 6]
# [ 4 10 14]
# [ 6 16 12]]
print(na1 / 3)
# [[0.33333333 0.66666667 1. ]
# [0.66666667 1.66666667 2.33333333]
# [1. 2.66666667 2. ]]
print(na1 % 5)
# [[1 2 3]
# [2 0 2]
# [3 3 1]]
# 数组之间可以做比较运算,得到的结果是一个有布尔类型的值组成的数组
print(na1 > na2)
# [[False True True]
# [False False True]
# [False True False]]
print(na1 == na2)
# [[False False False]
# [False True False]
# [False False False]]
# 数组可以直接和数字做比较运算
print(na1 > 5)
# [[False False False]
# [False False True]
# [False True True]]
print(na1 == 8)
# [[False False False]
# [False False False]
# [False True False]]
# 可以使用位运算符拼接比较的结果
print((na1 > 6) | (na1 < 2))
# [[ True False False]
# [False False True]
# [False True False]]
print((na1 > 3) & (na1 < 8))
# [[False False False]
# [False True True]
# [False False True]]
a = np.random.randint(2,10,size=(3,5))
# 判断a里面的数是否全部大于5
(a > 5).all() # False
# 判断a里面任意一个数是否大于5
(a > 5).any() # True
a = np.array([1,2,3,4,5])
b = np.array([9,8,7,6,5])
a + b # array([10, 10, 10, 10, 10])
a - b # array([-8, -6, -4, -2, 0])
a * b # array([ 9, 16, 21, 24, 25])
a / b # array([0.11111111, 0.25 , 0.42857143, 0.66666667, 1. ])
a > b # array([False, False, False, False, False])
b > a # array([ True, True, True, True, False])
a > 3 # array([False, False, False, True, True])
(a > 3) & (b > 4) # array([False, False, False, True, True])
(a > 3) | (b > 4) # array([ True, True, True, True, True])
a == b
# array([[False, True, True, False, True],
# [False, False, False, False, False],
# [False, False, False, True, False]])
c = np.array([1, 2, 3])
a + c # 报错
c = np.array([4])
a + c # array([5, 6, 7, 8, 9])