numpy数据处理

'''
Description: covid datasets显示
Autor: 365JHWZGo
Date: 2021-11-11 22:15:46
LastEditors: 365JHWZGo
LastEditTime: 2021-11-11 23:35:41
'''
import numpy as np

# 我们需要处理的脏数据
row_data = [
    ["Name", "StudentID", "Age", "AttendClass", "Score"],
    ["小明", 20131, 10, 1, 67],
    ["小花", 20132, 11, 1, 88],
    ["小菜", 20133, None, 1, "98"],
    ["小七", 20134, 8, 1, 110],
    ["花菜", 20134, 98, 0, None],
    ["刘欣", 20136, 12, 0, 12]
]
print('原始数据:\n',row_data)

# 将脏数据转化为numpy
data1 = np.array(row_data)
print('预处理的数据:\n',data1)

# 数据预处理
data_process = []
for i in range(len(row_data)):
    if i == 0:
        continue    # 不要首行字符串
    # 去掉首列名字
    data_process.append(row_data[i][1:])
data = np.array(data_process, dtype=np.float)
# print("data.dtype", data.dtype)
print('需要处理的部分数据:\n',data)

#清理数据

#判断是否有学号是重复的
sid = data[:, 0]
unique, counts = np.unique(sid, return_counts=True)
# print(unique)
# print(counts)
# print(unique[counts > 1])

#修改学号
data[4, 0] = 20135 
# print(data)

# #判断是否有None
# is_nan = np.isnan(data[:,1])
# print("is_nan:", is_nan)
# #找到该下标
# nan_idx = np.argwhere(is_nan)
# print(nan_idx)

# # 计算有数据的平均年龄,用 ~ 符号可以 True/False 对调
# mean_age = data[~np.isnan(data[:,1]), 1].mean()
# print("有数据的平均年龄:", mean_age)

# ~ 表示 True/False 对调,& 就是逐个做 Python and 的运算
normal_age_mask = ~np.isnan(data[:,1]) & (data[:,1] < 20)
# print("normal_age_mask:", normal_age_mask)

normal_age_mean = data[normal_age_mask, 1].mean()
# print("normal_age_mean:", normal_age_mean)

data[~normal_age_mask, 1] = normal_age_mean
# print("ages:", data[:, 1])

# 没上课的转成 nan
#data[data[:,2] == 0, 3],先判断data[:,2] == 0,再将所有为True的行的第四个数据改为nan
data[data[:,2] == 0, 3] = np.nan

# 超过 100 分和低于 0 分的都处理一下
#超出100分和低于0分的话则为100或0
data[:, 3] = np.clip(data[:, 3], 0, 100)

# print(data[:, 2:])

afterData = np.array(data1, dtype=object)
for i in range(len(data)):
    afterData[i+1][1:] = data[i]
print('清理之后的数据:\n',afterData)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

### 回答1: NumPy是一个用于进行科学计算的Python库,提供了丰富的多维数组操作函数和工具。它是构建在Python的原始数据类型之上的,能够高效地进行大规模数据处理和数值计算。 NumPy的中文手册(CHM)是通过该库的官方文档翻译而来的。该手册详细介绍了NumPy的各种功能和用法,方便初学者快速上手,并提供了深入的技术指南和实用示例供进阶使用。 该手册内容涵盖了NumPy数组的创建和操作、数组索引和切片、数组的数学运算和统计方法、数组的形状和维度变换、数组的文件输入输出等。此外,手册还介绍了NumPy的广播机制、通用函数、线性代数、随机数生成等高级功能和应用。 通过使用该手册,用户能够快速掌握NumPy的基本概念和操作,能够灵活地处理各种数据类型,进行数据的查询、运算、转置、排序等各种操作。此外,手册还提供了对于NumPy的扩展库和第三方工具的介绍和链接,使用户能够进一步了解和应用NumPy在科学计算和数据处理领域的广泛应用。 总之,NumPy的中文手册(CHM)是一个非常实用的工具,能够帮助用户深入理解和掌握NumPy库的核心功能和应用,为科学计算和数据处理提供强大的支持。 ### 回答2: NumPy是一个开源的Python科学计算库,用于处理大型多维数组和矩阵。它不仅提供了一个高效的数据结构,还包含了许多用于数组操作的函数。 NumPy的中文手册chm包含了对NumPy库的详细介绍和使用指南。这个手册可以帮助用户了解NumPy的核心概念,并提供了丰富的示例代码来演示如何使用NumPy进行数据处理。 手册中包含了NumPy数组的创建、操作、索引等基本操作的说明。它还介绍了NumPy提供的各种数学函数和统计函数,如加法、减法、乘法、除法、平方、平方根等。用户可以通过这些函数对数组进行各种运算和统计分析。 此外,手册还介绍了NumPy数组的高级操作,如数组转置、重塑、连接、切片等。这些方法可以使用户更方便地进行数组的操作和处理。 手册还包含了NumPy的广播机制、向量化操作和ufunc函数等高级特性的说明。这些特性可以帮助用户高效地处理大规模的数组数据,提高计算速度和代码的简洁性。 总之,NumPy数据处理中文手册chm提供了全面而详细的NumPy库的说明和使用指南。通过阅读和学习这个手册,用户可以掌握NumPy的使用方法,更好地进行数据处理和科学计算。它是NumPy库的重要参考资料,对于使用NumPy进行数据处理的用户非常有价值。 ### 回答3: NumPy是一个用于数值计算的Python库,它提供了丰富的数学函数和高效的多维数组对象。NumPy数据处理中文手册(chm)是一个详细的中文文档,涵盖了NumPy库的各种特性和用法,旨在帮助用户学习和使用NumPy进行数据处理。 这份中文手册包含了NumPy的安装方法、常用数据类型和数组操作函数的详细介绍,以及使用NumPy进行数据处理的各种技巧和例子。手册按照章节组织,每个章节都涵盖了特定主题。例如,第一章介绍了NumPy的基本概念和常用数据类型,第二章介绍了数组的创建和操作方法,第三章介绍了数学函数和统计方法,以此类推。 手册中的每个主题都以简洁明了的方式进行介绍,并提供了示例代码和说明,方便用户理解和运用。它还包含了一些常见问题的解答和一些技巧和技巧,帮助用户更好地利用NumPy进行数据处理和分析。 对于初学者来说,这份中文手册是学习NumPy的宝贵资源。它提供了全面而详细的资料,帮助新手从基础到进阶快速上手NumPy。对于有经验的用户来说,手册也提供了一些高级的技巧和用法,帮助他们更好地掌握NumPy的核心功能和扩展模块。 总之,NumPy数据处理中文手册(chm)是一份包含丰富内容的中文文档,它涵盖了NumPy库的各种特性和用法,旨在帮助用户学习和使用NumPy进行数据处理。无论是初学者还是有经验的用户,都可以从中获得有益的知识和技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

365JHWZGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值