创建3行5列的数组对象 ar,其值为1-15,依次完成 ar数组第0行所有元素 +1, 数组最后1列所有元素 +2 .求数组每列的均值,均保留2位小数,结果存在 mu 数组中 ,均值最大的是mu数组中的第几个数,存在idx变量中,如果将数组每一行视为一个长度为5的向量,有向量 v=[5,6,7,3,4], 试计算数组中的每个行向量与 v 的向量距离, 结果保存在dis数组中
时间: 2024-03-17 10:44:04 浏览: 18
可以使用以下代码实现:
```python
import numpy as np
# 创建3行5列的数组对象
ar = np.arange(1, 16).reshape(3, 5)
# 第0行所有元素 +1
ar[0, :] += 1
# 最后1列所有元素 +2
ar[:, -1] += 2
# 求数组每列的均值
mu = np.mean(ar, axis=0).round(2)
# 均值最大的是mu数组中的第几个数
idx = np.argmax(mu)
# 计算数组中的每个行向量与 v 的向量距离
v = np.array([5, 6, 7, 3, 4])
dis = np.sqrt(np.sum((ar - v) ** 2, axis=1)).round(2)
```
其中,`np.arange(1, 16)` 生成 1-15 的序列,`reshape(3, 5)` 将其变为 3x5 的数组对象。`ar[0, :] +=1` 表示将第0行所有元素加1,`ar[:, -1] += 2` 表示将最后一列所有元素加2。`np.mean(ar, axis=0)` 表示求每列的均值,`round(2)` 保留两位小数。最后的均值结果存储在 `mu` 数组中,`np.argmax(mu)` 返回均值最大值的下标。计算距离可以使用欧几里得距离公式 `np.sqrt(np.sum((ar - v) ** 2, axis=1))`,其中 `ar - v` 表示每个行向量与向量 v 的差,`**2` 表示平方,`np.sum` 表示求和,`np.sqrt` 表示开方,最后结果保留两位小数。