创建3行5列的数组对象 ar,其值为1-15,依次完成 ar数组第0行所有元素 +1, 数组最后1列所有元素 +2 .求数组每列的均值,均保留2位小数,结果存在 mu 数组中
时间: 2024-03-17 15:43:59 浏览: 56
可以使用以下代码实现:
```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)
```
其中,`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` 数组中。
相关问题
创建3行5列的数组对象 ar,其值为1-15,依次完成 ar数组第0行所有元素 +1, 数组最后1列所有元素 +2 .求数组每列的均值,均保留2位小数,结果存在 mu 数组中 ,均值最大的是mu数组中的第几个数,存在idx变量中,如果将数组每一行视为一个长度为5的向量,有向量 v=[5,6,7,3,4], 试计算数组中的每个行向量与 v 的向量距离, 结果保存在dis数组中
可以使用以下代码实现:
```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` 表示开方,最后结果保留两位小数。
将【0-31】这32个数字分为8行4列的二维数组ar
下面是将【0-31】这32个数字分为8行4列的二维数组ar的Python代码实现:
```python
ar = [[0]*4 for i in range(8)]
for i in range(8):
for j in range(4):
ar[i][j] = i*4+j
print(ar)
```
输出结果为:
```python
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23], [24, 25, 26, 27], [28, 29, 30, 31]]
```
其中,`[[0]*4 for i in range(8)]` 表示创建一个8行4列的二维数组,初始化为0。接着,使用两个 for 循环对数组进行遍历,将数组元素依次赋值为0到31的数值。最后,输出数组的值。