Numpy学习

本文详细介绍了Numpy库的核心概念,包括Numpy数组对象、数据类型、数组运算、索引切片以及数据处理。通过实例演示了创建、查看和转换数据类型,展示了向量化运算、数据广播、数组与标量间运算等功能。同时,讲解了Numpy在数据处理方面的应用,如条件逻辑转换、统计运算、排序和检索等。

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

Numpy学习

1.1 认识Numpy数组对象

Numpy是一个用python实现的科学计算的扩展程序库,包括:

  • 一个强大的N维数据对象Array
  • 比较成熟的函数库
  • 用于整合C/C++和Fortran代码工具包
  • 使用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
import numpy as np  #导入numpy工具包
data = np.arange(12).reshape(3,4)
data

array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])

type(data)

numpy.ndarray

data.ndim  #数组维度个数,输出结果为2,表示二维数组

2

data.shape   #数组的维度,输出结果(3,4)表示3行4列

(3, 4)

data.size   #数组元素的个数,输出结果12,表示总共有12个元素

12

data.dtype   #数组元素的类型,输出结果dtype('int32'),表示元素类型是int32

dtype(‘int32’)

1.2 创建Numpy数组

data1 = np.array([1,2,3])   #创建一个一维数组
data1

array([1, 2, 3])

data2 = np.array([[1,2,3],[4,5,6]])  #创建一个二维数组
data2

array([[1, 2, 3],
[4, 5, 6]])

np.zeros((3,4))  #创建一个全0数组

array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])

np.ones((3,4))  #船舰一个全1数组

array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])

np.empty((5,2))  #创建全空数组,其实每个值都是接近于0的数

array([[6.23042070e-307, 1.89146896e-307],
[1.37961302e-306, 7.56593017e-307],
[1.33511290e-306, 1.78018403e-306],
[1.95821439e-306, 8.01097889e-307],
[8.45596650e-307, 1.24610723e-306]])

np.arange(1,20,5)   #1-20的数,间隔5

array([ 1, 6, 11, 16])

np.array([1,2,3,4],float)    #创建一维数组,类型为float

array([1., 2., 3., 4.])

np.ones((2,3),dtype='float64')      #创建一个二维数组,类型为float64

array([[1., 1., 1.],
[1., 1., 1.]])

1.3 ndarry对象的数据类型

1.3.1 查看数据类型
data_one = np.array([[1,2,3],[4,5,6]])
data_one.dtype.name

‘int32’

1.3.2 转换数据类型
data = np.array([[1,2,3],[4,5,6]])
data.dtype

dtype(‘int32’)

float_data = data.astype(np.float64)  #类型转换为float64
float_data.dtype

dtype(‘float64’)

float_data = np.array([1.2,2.3,3.5])
float_data

array([1.2, 2.3, 3.5])

int_data = float_data.astype(np.int64)    #数据类型转换为int64
int_data

array([1, 2, 3], dtype=int64)

str_data = np.array(['1','2','3&#
### NumPy学习教程和资源 #### 数组创建与操作 NumPy提供了多种方法来创建数组执行各种操作。例如,可以使用`np.array()`函数创建一维或多维数组[^2]。 ```python import numpy as np a = np.array([1, 2, 3]) b = np.array([[0], [4], [5]]) result = a + b print(result) ``` 这段代码展示了如何通过广播机制将不同形状的数组相加得到新的结果矩阵。 #### 基本数学运算功能 除了简单的算术运算外,NumPy还支持一系列高级数学计算,如绝对值、平方根、平方等: ```python n = np.array([1, 4, 8, 8, 9, -24]) # 绝对值 abs_values = np.abs(n) # 开方 sqrt_values = np.sqrt(np.abs(n)) # 对负数求开方前先取绝对值 # 平方 square_values = np.square(n) # 指数 exp_values = np.exp(n) # 自然对数(仅适用于正数) log_values = np.log(np.abs(n)) # 三角函数 sin_values = np.sin(n * (np.pi / 180)) cos_values = np.cos(n * (np.pi / 180)) tan_values = np.tan(n * (np.pi / 180)) ``` 这些例子说明了NumPy库中丰富的内置函数能够简化复杂的数值处理过程。 #### 数据舍入控制 对于浮点型数据的操作,有时需要指定保留的小数位数,这时可以用到`numpy.round()`函数: ```python rounded_array = np.round(a, decimals=2) ``` 此命令会返回一个新的数组,其中每个元素都被四舍五入到了两位小数。 为了更深入地了解NumPy的功能以及掌握更多实用技巧,建议参考官方文档和其他在线课程资料。此外,在实际项目实践中不断练习也是提高技能的有效途径之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值