# 1. 使用numpy数组实现如下3个功能:(所有的平均值保留1位小数)
# 1) 随机生成一个3行4列的二维数组。
# 2) 计算每一行的平均值并显示
# 3) 计算每一列的平均值并显示
import numpy as np
array = np.random.rand(3, 4)
print("随机生成的3行4列二维数组:")
print(array)
for h in range(0, 3):
print(f'第{h}行的数据为:', array[h])
print(f'第{h}行的平均值为:', np.round(np.mean(array[h]), 1))
for l in range(0, 4):
print(f'第{l}列的数据为:', array[:, l])
print(f'第{l}列的平均值为:', np.round(np.mean(array[:, l]), 1))
运行结果如下:
# 2. 使用numpy实现如下5个功能:
# 1)随机生成一个4行3列的float类型的二维数组arr1
# 2)将索引为[1,2]和[2,0]位置的元素值修改为nan空值(即np.nan)
# 3)显示数组arr1中所有的空值nan
# 4)显示数组arr1中所有的非空值
# 5)循环遍历每一列,将当前列中的nan空值用该列的平均值替换
arr1 = np.random.rand(4, 3)
print('1.创建的4行3列的数组为:\n',arr1)
arr1[1, 2] = np.nan
arr1[2, 0] = np.nan
print("2 & 3.将索引为[1,2]和[2,0]位置的元素值\n修改为nan空值后的效果如下:\n", arr1)
a = arr1[~np.isnan(arr1)]
print('4. arr1中所有非空值如下:\n', a)
for col in range(arr1.shape[1]):
col_data = arr1[:, col]
col_mean = np.nanmean(col_data) # 计算当前列的平均值,忽略nan值
print(f'第{col}列的数据为:{col_data},该列的均值为:{col_mean}')
col_data[np.isnan(col_data)] = col_mean # 将nan值替换为平均值
arr1[:, col] = col_data # 更新原数组
print("5. nan被替换成对应列均值后的数组 arr1:")
print(arr1)
运行结果如下: