对一个n*m的2D numpy数组求平均值,获得1*m的1D数组
时间: 2023-12-19 12:07:21 浏览: 29
可以使用numpy的mean函数,设定axis参数为0来计算每列的平均值,得到一个1*m的1D数组。
示例代码如下:
```python
import numpy as np
# 生成一个n*m的2D numpy数组
n = 3
m = 4
arr = np.random.rand(n, m)
# 计算每列的平均值,得到一个1*m的1D数组
mean_arr = np.mean(arr, axis=0)
print(mean_arr)
```
输出:
```
[0.4153799 0.50885138 0.46834348 0.49067311]
```
相关问题
将一个n*3的numpy和1*3的numpy数组按列合并
您可以使用numpy模块中的concatenate函数将一个n*3的numpy数组和1*3的numpy数组按列合并。具体实现方法如下:
```python
import numpy as np
# 生成一个n*3的numpy数组
arr1 = np.random.rand(5, 3)
print("arr1 shape:", arr1.shape)
print("arr1:", arr1)
# 生成一个1*3的numpy数组
arr2 = np.array([1, 2, 3]).reshape(1, -1)
print("arr2 shape:", arr2.shape)
print("arr2:", arr2)
# 使用concatenate函数按列合并
result = np.concatenate((arr1, arr2), axis=0)
print("result shape:", result.shape)
print("result:", result)
```
输出结果为:
```
arr1 shape: (5, 3)
arr1: [[0.22375957 0.30889207 0.7559323 ]
[0.30150094 0.49554708 0.63399332]
[0.78774532 0.59915793 0.13907708]
[0.21433207 0.30091976 0.52053389]
[0.36300591 0.2493658 0.66726204]]
arr2 shape: (1, 3)
arr2: [[1 2 3]]
result shape: (6, 3)
result: [[0.22375957 0.30889207 0.7559323 ]
[0.30150094 0.49554708 0.63399332]
[0.78774532 0.59915793 0.13907708]
[0.21433207 0.30091976 0.52053389]
[0.36300591 0.2493658 0.66726204]
[1. 2. 3. ]]
```
其中reshape函数用于将一维数组转换为二维数组,axis参数用于指定按列合并。
对于m*n维numpy数组,对其中的两列的值作数据删选,将同时满足这些条件的行提取出来形成一个新的数组
可以使用布尔索引来实现对numpy数组的筛选。假设需要对m*n的numpy数组的第一列和第三列进行筛选,要求第一列的值大于10,第三列的值小于5,可以按以下方式进行操作:
```python
import numpy as np
# 生成一个m*n的随机numpy数组
arr = np.random.rand(m, n)
# 对第一列和第三列进行筛选
condition = (arr[:, 0] > 10) & (arr[:, 2] < 5)
new_arr = arr[condition]
```
其中,`condition`是一个布尔类型的numpy数组,表示对应行是否满足条件。`&`表示逻辑与操作,将两个条件合并为一个。最后,通过将布尔数组作为索引,可以提取出符合条件的行形成新的数组`new_arr`。