Skip to content

记录项目中遇到的numpy算法场景。

1.有多个形状相同的数组,要求获取每个位置上的最大值和最小值

思路:增加维度,将相同位置的元素都合并在一起,然后求新维度上的最大值和最小值

真实场景:拥有10名销售人员连续四周周一到周日的销售额,共四张表,需要计算每个人周一到周日每天的最大和最小销售额

python
import numpy as np

# 定义形状相同的a, b, c三个数组,要求三个数组相同位置的最大值和最小值
a = np.random.randint(10, size=(5, 5))
print('a:', a)
b = np.random.randint(10, size=(5, 5))
print('b:', b)
c = np.random.randint(10, size=(5, 5))
print('c:', c)

# 增加数组的维度
a = np.expand_dims(a, axis=2) # 效果同于a = a.reshape(5, 5, 1)
print('a:', a)
b = np.expand_dims(b, axis=2)
print('b:', b)
c = np.expand_dims(c, axis=2)
print('b:', b)

# 合并数组
d = np.concatenate((a, b, c), axis=2)
print('合并后数组:')
print(d)

# 求最大值
print('最大值:', np.max(d, axis=2))
# 求最小值
print('最小值:', np.min(d, axis=2))

AiStudio Numpy常用算法场景

飞桨PPDB——深度学习社区