首页 > 其他分享 >Numpy库

Numpy库

时间:2024-08-26 11:28:10浏览次数:9  
标签:NumPy 矩阵 堆叠 数组 np Numpy

一、NumPy介绍

在Python中,NumPy是一个开源的数值计算扩展库,用于高效地处理大型多维数组和矩阵,同时提供了大量的数学函数库进行这些数组的操作。

NumPy库在科学计算,数据分析,机器学习中有广泛应用。

二、安装NumPy

1 pip install numpy

2.1安装完NumPy后,你需要在Python脚本中导入它才能使用:

 

三、Numpy数组基础 

创建数组: Numpy允许使用array函数从列表创建数组

 数组的属性:数组有多个属性,如shape(形状)、size(大小)和dtype(数据类型)

 索引与切片:可以通过索引访问数组中的元素,或使用切片来访问子数组。

3.2数组操作

数组的形状改变:使用reshape方法可以改变数组的形状,而不改变其数据

 堆叠:stack函数可以沿着新的轴加入一系列的数组。

 1 堆叠(Stacking)在数据科学和机器学习领域,尤其是在处理多维数组或张量时,通常指的是将多个数组或矩阵沿着某个新的轴组合成一个更大的数组或张量的过程。这个过程类似于将书籍或纸张堆叠在一起,但在这里我们是在数学或编程的上下文中操作数组或矩阵。
 2 
 3 在NumPy库中,堆叠可以通过多种函数实现,具体取决于你想要如何组合这些数组:
 4 
 5 np.stack():允许指定沿着哪个轴进行堆叠。如果没有指定轴(axis),它默认会在最前面增加一个新的轴。这个函数非常灵活,因为它允许我们控制堆叠的方向
 6 
 7 np.vstack():用于垂直堆叠(按行堆叠)数组。它要求输入的数组必须具有相同的列数,但行数可以不同。堆叠后的数组将具有所有输入数组的行数之和作为行数,列数与输入数组的列数相同
 8 
 9 np.dstack():用于沿着深度轴堆叠数组,通常用于堆叠图像的不同颜色通道(例如,RGB图像的红色、绿色和蓝色通道)。它要求输入的数组必须具有相同的尺寸,除了堆叠的轴之外。
10 
11 np.concatenate():虽然这不是一个专门用于堆叠的函数,但它可以用来沿着指定的现有轴连接相同形状的数组或数组序列。与np.stack()不同,np.concatenate()不会增加新的轴,而是沿着一个已存在的轴进行连接。

 

 分割:split函数可以将一个数组分割成多个子数组。

1 import numpy as np
2 
3 d = np.array([1, 2, 3, 4, 5, 6])
4 e, f = np.split(d, [3])
5 print(e)  # [1 2 3]
6 print(f)  # [4 5 6]
7 
8 
9 np.split(d, [3]) 调用了np.split()函数,尝试将数组d在索引3处分割成两个子数组。由于np.split()的第二个参数是一个列表(或单个整数,但在这里被当作列表处理),其中包含了分割点的索引,因此它会在索引3之前停止分割第一个子数组,并将从索引3开始(包括索引3)的所有元素分配给第二个子数组

 

数组的广播:广播是Numpy中的一个强大特性,它允许不同形状的数组进行数学运算。

 1 import numpy as np
 2 
 3 g = np.array([1, 2, 3])
 4 h = 2
 5 print(g * h)
 6 
 7 创建了一个NumPy数组g,它包含三个整数元素:1, 2, 和 3。这个数组是一维的,意味着它只有一个轴,并且这个轴上有三个元素
 8 
 9 g是一个NumPy数组,而h是一个标量
10 g * h会被解释为将h的值(即2)与g中的每个元素相乘。因此,1 * 2 = 2,2 * 2 = 4,3 * 2 = 6,最终得到一个新的NumPy数组[2, 4, 6],这个数组随后被打印出来

 

四、数学运算

基本数学函数: Numpy提供了许多数学函数,如加法、减法、乘法和除法

 线性代数运算: Numpy支持多种线性代数运算,如矩阵乘法和求解线性方程组。

 1 import numpy as np
 2 
 3 b = np.array([[1, 2], [3, 4]])
 4 c = np.array([[5, 6], [7, 8]])
 5 print(np.dot(b, c))  # 矩阵乘法
 6 
 7 np.dot函数用于执行两个数组的点积(dot product)。当两个数组都是二维数组时,它执行的是矩阵乘法。矩阵乘法的基本规则是,第一个矩阵的列数必须等于第二个矩阵的行数。
 8 
 9 矩阵乘法的具体计算方式是,第一个矩阵的每一行与第二个矩阵的每一列对应元素相乘后求和,得到的结果作为结果矩阵的相应元素。
10 
11 对于b和c的乘法,我们可以这样计算:
12 b = [[1, 2],  
13      [3, 4]]  
14   
15 c = [[5, 6],  
16      [7, 8]]  
17   
18 结果矩阵的第一行第一列元素 = 1*5 + 2*7 = 5 + 14 = 19  
19 结果矩阵的第一行第二列元素 = 1*6 + 2*8 = 6 + 16 = 22  
20 结果矩阵的第二行第一列元素 = 3*5 + 4*7 = 15 + 28 = 43  
21 结果矩阵的第二行第二列元素 = 3*6 + 4*8 = 18 + 32 = 50  
22   
23 所以,np.dot(b, c) = [[19, 22],  
24                       [43, 50]]

 统计方法: Numpy提供了一系列统计方法,用于计算平均值、中位数、标准差等。

 

五、高级特性

掩码数组:掩码数组是Numpy中的一种特殊数组,它可以让你隐藏或“掩码”数组中的某些数据。

 

六、实例:使用Numpy解决问题

  • 实际案例:假设我们是数据分析师,需要分析一组股票价格的数据,找出价格最高的股票和计算所有股票价格的平均值。
  • 1.数据准备: 首先,我们创建一个包含股票价格的Numpy数组。
1 import numpy as np
2 stock_prices = np.array([120.5, 90.3, 45.8, 150.1, 180.4])

  2.分析:找出价格最高的股票:

1 max_price = np.max(stock_prices)
2 max_index = np.argmax(stock_prices)
3 print(f"最高股票价格为:{max_price}, 位于索引:{max_index}")

  3.计算所有股票价格的平均值:

1 average_price = np.mean(stock_prices)
2 print(f"股票价格的平均值为:{average_price}")

 

 


















 

标签:NumPy,矩阵,堆叠,数组,np,Numpy
From: https://www.cnblogs.com/liuliu1/p/18367567

相关文章

  • 云服务器配置Yolov5环境,No module named ‘torch‘, No module named ‘numpy
    客户背景因为电脑GPU不行,所以想使用云服务器跑Yolov5,但是云服务器配置环境有冲突,需要解决;报错:Nomodulenamed'torch',Nomodulenamed'numpy阿里云配置1.阿里云资费情况2.选择系统和安装GPU启动3.选择网络速度(上行下行的速度),之后确认订单就可以了。云服务器......
  • numpy_torch_basic
    importnumpyasnpCreatearr1=np.array([1.,2.,3.])arr1array([1.,2.,3.])arr2=arr1.astype(int)arr2array([1,2,3])arr3=np.ones((3,2,1))arr3array([[[1.],[1.]],[[1.],[1.]],[[1.],[1.]]])a=......
  • C++调用Python和numpy第三方库计算MFCC音频特征实现封装发布
    目录项目简介程序/数据集下载环境准备执行步骤1.新建python虚拟环境2.虚拟环境运行下python代码3.迁移虚拟环境4.编写Cmakelists.txt5.编写C++代码6.编译项目7.测试项目简介深度学习程序的边缘部署以性能绝佳的C++为主(⊙﹏⊙),但遇到项目开发周期短,则以功能优先,一些复杂的算法和......
  • NumPy备忘录
    Pythoncallsmatrices lists,NumPycallsthem arrays andTensorFlowcallsthem tensors. Pythonrepresentsmatriceswiththe listdatatype.Call np.array tocreateaNumPyarraywithyourownhand-pickedvalues.Forexample,thefollowingcallcreate......
  • numpy梯度回传\线性回归
    1importmath2importnumpyasnp3x_train=np.array([1.0,2.0,3.0])4y_train=np.array([300.0,350.0,500])56defcompute_cost(x,y,w,b):7m=x.shape[0]8f_wb=w*x+b9cost=((f_wb-y)**2).sum()10total_co......
  • python之numpy (5 分割和复制)
    分割分割指将矩阵分割为几个小部分,以便于后续的计算需要。splitimportnumpyasnpm=np.random.random((3,3))print(m)sp=np.split(m,3,axis=0)ssp=np.split(m,3,axis=1)print(sp,ssp,sep='\n')[[0.373247510.933194940.18961048][0.814330810.377225750.00708......
  • python之numpy(4 选择数据及合并)
    选择数据importnumpyasnpm=np.random.random((3,3))print(m)print(m[0],m[1][1],sep='\n')print(m[1,1])print(m[1,:])print(m[:,1])结果:[[0.25960570.047399260.76332494][0.865032270.290489970.79591841][0.50535280.201822340.19601046]][......
  • python之numpy(1 安装及基本介绍)
    numpy介绍numpy是Python中的一个非常流行的库,它提供了大量的数学函数工具,特别是针对数组和矩阵的操作。numpy的全称是NumericalPython,它极大地简化了数组和矩阵的运算,使得Python成为进行科学计算的一个强大工具。安装numpy要安装numpy,需在终端(win+r---->cmd)提示符下执......
  • 数据分析 Numpy+Scipy+Matplotlib+Pandas
    数据分析Numpy+Scipy+Matplotlib+Pandas基础数值算法科学计算数据可视化序列高级函数一、numpy是什么?1.NumericalPython,数值的Python,补充了Python语言所欠缺的数值计算能力。2.Numpy是其它数据分析及机器学习库的底层库。3.Numpy完全标准C语言实现,运行效率充分优化。......
  • 计算机视觉2:NumPy模块函数学习
    NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含一个强大的N维数组对象ndarray、广播功能函数、整合C/C++/Fortran代码的工具和线性代数、傅里叶变换、随机数生成等功能。将NumPy包引入,没有的话需要先安装。importnumpyasnp一、ndarray对象NumPy最重要的一个......