numpy复习并熟悉操作数组的行和列,有题目且配有解答

# 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)

运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/2301_79810514/article/details/143305240