numpy模块的碎碎念

本文详细探讨了Python中广泛使用的numpy模块,从基本概念到高级用法,包括数组操作、数学函数应用、矩阵运算以及数据处理等核心内容,旨在帮助读者全面掌握numpy在数值计算中的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import numpy as np

# a = np.array([[1, 2, 3], [4, 5, 6]])
# print(a)
# .shape查看数据的形状,结果是一个元组
# print(type(a.shape))

# .reshape修改数组的形状,但返回值的数组是修改后的形状,原数组其实形状不变。如果数据不够则会报错
# b = a.reshape(3, 2)
# print(b)
# print(a)

# .flatten()可以将多维数组转化为一维数组, 原数组形状不变
# b = a.flatten()
# print(b)

# 创建数组的方式 , a,b,c的内容均相同。arange第三个参数 dtype=None
# a = np.array([1, 2, 3, 4, 5, 6])
# b = np.array(range(1, 7))
# c = np.arange(1, 7)
# print(a, b, c)


# 将csv文件的数据转化为列表的形势,
"""
第一个参数:文件路径(必须)
delimiter:分割字符串,默认是空格,改为逗号
dtype:数据类型,可选,默认是np.float
skiprows:跳过前x行,一般跳过第一行的表头
usecols:读取指定的列,索引,元组类型
unpack:如果为True,读入属性将分别写入不同的数组变量,Flase读入数据只写入一个数据变量,默认为Flase
"""
# csv_file_path = "./books.csv"
# t1 = np.loadtxt(csv_file_path, delimiter=",", dtype="str")
# print(t1)

# # 取行
# print(t1[2])
# # 取连续的行
# print(t1[2:])
# # 取不连续的多行
# print(t1[[2, 3, 5]])
# # 取列(第3列到最后一列)
# print(t1[:, 2:])
# # 取不连续的多列(第一列和第三列)
# print(t1[:, [0, 2]])
# # 取行和列,取第三行,第四列的值
# print(t1[2, 3])
# # 取多行和多列,取第3行到第五行,第2列到第4列的结果
# print(t1[2:5, 1:4])

"""
numpy中的布尔索引
"""
# t = np.arange(24).reshape((4, 6))
# print(t < 10)
# # 将数组中小于10的数字替换为10
# t[t < 10] = 10
# print(t)
# print(t)

"""
创建数组的更多好用方法
扩展:数组的拼接。垂直拼接np.vstack((数组1, 数组2))
                水平拼接np.hstack((数组1, 数组2))
"""
# # 创建一个全为0的数组
# a = np.zeros((3, 4))
# print(a)
# # 创建一个全为1的数组
# b = np.ones((4, 3))
# print(b)


"""
inf:表示正无穷,-inf表示负无穷。比如除以一个0,(python中会直接报错,numpy中是一个inf或者-inf)
nan:not a number 表示不是一个数字。一般出现读取文件为float的时候,如果有缺失,就会出现nan;
                                    做出不合理的运算也会出现nan(列:无穷大减去无穷大)
inf和nan的类型都是float,nan和任何值得计算结果都为nan
                                    
"""
# # 两个nan是不相等的
# print(np.nan == np.nan)
# # 利用nan的特性,判断数组中nan的个数
# t = np.arange(12).reshape((4, 3))
# t1 = np.array([np.nan, np.nan, np.nan])
# t2 = np.vstack((t, t1))
# print(t2)
# # 判断nan的个数
# print(np.count_nonzero(t2 != t2))
# # 将nan改为0
# t2[np.isnan(t2)] = 0
# print(t2)








 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值