numpy数组运算的广播机制

数组间的运算(加减乘除幂等),需满足numpy的广播机制;

(1)两个数组形状完全相同,即两个数组维度均为n*m

(2)其中一个数组维度为n*m,另一个数组维度为n*1或1*m

(更高维数组同理)

import numpy as np

n1 = np.array([1, 2]) # 维度为2*1的数组

n2 = np.array([3, 4]) # 维度为2*1的数组

n3 = np.array([1], [2]) # 维度为1*2的数组

n4 = np.array([[1, 2], [3, 4]]) # 维度为2*2的数组

n5 = np.array([1, 2, 3]) # 维度为3*1的数组

n6 = np.array([1], [2], [3]) # 维度为1*3的数组

n7 = np.array([[1, 2, 3], [4, 5, 6]]) # 维度为3*2的数组

n8 = np.array([[1, 2], [3,4], [5,6]]) # 维度为2*3的数组

这些数组之间是否符合广播机制如下表所示:

n1

2*1

n2

2*1

n3

1*2

n4

2*2

n5

3*1

n6

1*3

n7

3*2

n8

2*3

n1

2*1

× × × ×

n2

2*1

× × × ×

n3

1*2

× × × × ×

n4

2*2

× × × ×

n5

3*1

× × × × × ×

n6

1*3

× × × × × ×

n7

3*2

× × × × ×

n8

2*3

× × × ×

你可能感兴趣的:(Python,numpy,python)