NumPy数值计算基础(超详细的numpy使用方法)

本文详细介绍了NumPy的使用,包括创建多维数组、数组属性与转换、生成随机数、数组索引切片、数组运算、数组读写以及数据统计分析。NumPy作为Python的数值计算扩展库,提供了ndarray对象、ufunc函数等强大工具,适用于大规模数据处理和科学计算。
摘要由CSDN通过智能技术生成

NumPy数值计算基础

  • NumPy是在1995年诞生的Python库Numeric的基础上建立起来的,但真正促使NumPy的发行的是Python的SciPy库。但SciPy中并没有合适的类似于Numeric中的对于基础数据对象处理的功能。于是,SciPy的开发者将SciPy中的一部分和Numeric的设计思想结合,在2005年发行了NumPy。
  • NumPy是Python的一种开源的数值计算扩展库。它包含很多功能,如创建n维数组(矩阵)、对数组进行函数运算、数值积分等。 NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:
  • ndarray:是储存单一数据类型的多维数组。
  • ufunc:是一种能够对数组进行处理的函数。
  • NumPy常用的导入格式:import numpy as np

一、NumPy多维数组

1 创建数组对象

通常来说,ndarray是一个通用的同构数据容器,即其中的所有元素都需要相同的类型。利用array函数可创建ndarray数组。

(1)利用array函数创建数组对象

array函数的格式:np.array(object, dtype,ndmin)

array函数的主要参数及说明:

在这里插入图片描述

import numpy as np
data1 = [1,3,5,7] #列表
w1 = np.array(data1)
print('w1:',w1)
data2 = (2,4,6,8) #元组
w2 = np.array(data2)
print('w2:',w2)
data3 = [[1,2,3,4],[5,6,7,8]] #多维数组
w3 = np.array(data3)
print('w3:',w3)

在这里插入图片描述

(2)专门创建数组的函数
  • arange函数:创建等差一维数组
  • 格式:np.arange([start, ]stop, [step, ]dtype)

在这里插入图片描述
例:`

warray = np.arange(10)
print(warray)
warray = np.arange(0,1,0.2)
print(warray)`

在这里插入图片描述

  • logspace函数:创建等比一维数组
  • 格式:np.logspace(start, stop, num, endpoint=True,base=10.0, dtype=None))

logspace的参数中,start, stop代表的是10的幂,默认基数base为10,第三个参数元素个数。

warray = np.logspace(0,1,5)#生成1-10间的5个元素的等比数列
print(warray)
在这里插入图片描述

  • zeros函数:创建指定长度或形状的全0数组
  • 格式:np.zeros(shape, dtype=float, order=‘C’)
  • ones函数:创建指定长度或形状的全1数组
  • 格式:np. ones(shape, dtype=None, order=‘C’)
  • diag函数:创建一个对角阵。
  • 格式:np.diag(v, k=0)

2 ndarray对象属性和数据转换

ndarray对象属性及其说明:

在这里插入图片描述
例:

warray = np.array([[1,2,3],[4,5,6]])
print('秩为:',warray.ndim)
print('形状为:',warray.shape)
print('元素个数为:',warray.size)

在这里插入图片描述
设置数组的shape属性。

warray.shape = 3,2
print(warray)

在这里插入图片描述
数组的类型转换。

arr1 = np.arange(6)
print(arr1.dtype)
arr2 = arr1.astype(np.float64)
print(arr2.dtype)

在这里插入图片描述

3 生成随机数

在NumPy.random模块中,提供了多种随机数的生成函数。如randint函数生成指定范围的随机整数来构成指定形状的数组。

用法:
np.random.randint(low, high = None, size = None)

arr = np.random.randint(100,200,size = (2,4))
print(arr)

在这里插入图片描述
random模块的常用随机数生成函数
在这里插入图片描述

4 数组变换

(1)数组重塑

与reshape相反的方法是数据散开(ravel)或数据扁平(flatten)。

arr1 = np.arange(12).reshape(3,4)
print("arr1:",arr1)
arr2 = arr1.ravel()
print("arr2:",arr2)

在这里插入图片描述
数据重塑不会改变原来的数组。

(2)数组合并
  • hstack函数:实现横向合并
  • vstack函数:实现纵向组合是利用vstack将数组纵向合并;
  • concatenate函数:可以实现数组的横向或纵向合并,参数axis=1时进行横向合并,axis=0时进行纵向合并。
arr1 = np.arange(6
  • 9
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 导入numpy使用以下代码导入numpy库: ```python import numpy as np ``` 2. 创建numpy数组 使用以下代码创建一个numpy数组: ```python arr = np.array([1, 2, 3, 4, 5]) ``` 3. 数组计算 使用numpy数组进行数值计算: ```python # 加法 arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) arr3 = arr1 + arr2 # 减法 arr4 = arr2 - arr1 # 乘法 arr5 = arr1 * arr2 # 除法 arr6 = arr2 / arr1 # 平方 arr7 = arr1 ** 2 # 求和 arr8 = np.sum(arr1) # 均值 arr9 = np.mean(arr2) ``` 4. 数组索引和切片 使用以下代码进行数组索引和切片: ```python # 索引 arr10 = arr1[0] # 切片 arr11 = arr2[1:3] # 布尔索引 arr12 = arr1[arr1 > 2] ``` 5. 数组形状操作 使用以下代码进行数组形状操作: ```python # 改变形状 arr13 = arr1.reshape(3, 1) # 展平数组 arr14 = arr1.flatten() # 转置数组 arr15 = arr1.T ``` 6. 数组操作 使用以下代码进行数组操作: ```python # 数组拼接 arr16 = np.concatenate((arr1, arr2)) # 数组堆叠 arr17 = np.vstack((arr1, arr2)) # 数组拆分 arr18 = np.split(arr1, 2) ``` 7. 数组运算 使用以下代码进行数组运算: ```python # 数组排序 arr19 = np.sort(arr1) # 数组最大值和最小值 arr20 = np.max(arr2) arr21 = np.min(arr2) # 数组标准差和方差 arr22 = np.std(arr1) arr23 = np.var(arr2) ``` 8. 矩阵计算 使用以下代码进行矩阵计算: ```python # 矩阵乘法 arr24 = np.dot(arr1, arr2) # 矩阵转置 arr25 = arr1.T # 矩阵求逆 arr26 = np.linalg.inv(arr1) ``` 9. 随机数生成 使用以下代码生成随机数: ```python # 生成随机数 arr27 = np.random.rand(3, 3) # 生成正态分布随机数 arr28 = np.random.normal(0, 1, (3, 3)) ``` 通过以上的numpy数值计算试验过程,可以发现numpy库提供了丰富的数值计算功能和高效的数组运算能力,帮助我们更加方便和快速地进行数值计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黎明之道

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

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

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

打赏作者

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

抵扣说明:

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

余额充值