①使用np.random.randint()创建一个5*5的1-50之间随机数数组a,将a中的所有奇数替换为 0,将a中大于等于30的数组替换为1; ② 分别按行和列方向求数组a的最大值、最小值、极差、百分位数、中值、平均值;
时间: 2023-05-13 20:05:41 浏览: 163
好的,让我来回答你的问题。
①这是一个非常有趣的编程问题,可以使用以下代码来解决:
import numpy as np
a = np.random.randint(1, 51, (5, 5))
print("原始数组:\n", a)
a[a % 2 == 1] = 0
a[a >= 30] = 1
print("替换后的数组:\n", a)
对于第二个问题,可以使用以下代码来解决:
# 按行方向求最大值、最小值、极差、百分位数、中值、平均值
print("按行方向求解:")
print("最大值:", np.max(a, axis=1))
print("最小值:", np.min(a, axis=1))
print("极差:", np.ptp(a, axis=1))
print("百分位数:", np.percentile(a, [25, 50, 75], axis=1))
print("中值:", np.median(a, axis=1))
print("平均值:", np.mean(a, axis=1))
# 按列方向求最大值、最小值、极差、百分位数、中值、平均值
print("按列方向求解:")
print("最大值:", np.max(a, axis=0))
print("最小值:", np.min(a, axis=0))
print("极差:", np.ptp(a, axis=0))
print("百分位数:", np.percentile(a, [25, 50, 75], axis=0))
print("中值:", np.median(a, axis=0))
print("平均值:", np.mean(a, axis=0))
希望这些代码可以帮助你解决问题。
阅读全文