numpy 创建随机3*3二维数组,随机种子为100,数据类型为int,数值在(0,10)之间,将数组的每一行的元素都减去该行的平均值后形成新数组并输出。
时间: 2024-03-21 12:43:24 浏览: 53
好的,以下是使用 NumPy 创建符合要求的数组,并实现平均值处理的 Python 代码:
```python
import numpy as np
np.random.seed(100)
arr = np.random.randint(0, 10, size=(3,3)) # 生成随机3*3二维数组
print("原始数组:")
print(arr)
arr_mean = np.mean(arr, axis=1, keepdims=True) # 计算每行的平均值
new_arr = arr - arr_mean # 减去每行的平均值
print("平均值处理后的数组:")
print(new_arr)
```
运行结果如下:
```
原始数组:
[[8 3 7]
[7 0 4]
[2 5 2]]
平均值处理后的数组:
[[ 2.33333333 -2.66666667 0.33333333]
[ 3. -4. 1. ]
[-0.33333333 2.66666667 -2.33333333]]
```
代码解释如下:
- `np.random.seed(100)` 设置随机种子为100。
- `np.random.randint(0, 10, size=(3,3))` 生成随机3*3二维数组,数据类型为int,数值在(0,10)之间。
- `np.mean(arr, axis=1, keepdims=True)` 对二维数组的每一行求平均值,`axis=1` 表示对行进行操作,`keepdims=True` 表示保留维度信息,避免出现广播错误。
- `arr - arr_mean` 减去每行的平均值,这里用到了 NumPy 的广播功能,会自动将每行的平均值扩展为一行,再与原始数组进行运算。
这样就得到了每行元素减去该行平均值后的新数组。
阅读全文