十分钟入门NumPy代码版整理

本文介绍了NumPy库的基本使用,包括创建数组、数组运算、数学函数应用以及广播机制。NumPy因其底层由C语言实现,提供向量化操作,从而显著提升Python的计算速度。文中通过实例展示了数组的加减乘除、矩阵乘法、统计函数如求和、平均值、中位数等,以及如何进行数据类型的转换。此外,还提及了不同尺寸数组间的运算和轴向聚合操作。
摘要由CSDN通过智能技术生成

来自B站up奇乐编程学院的视频,用作个人学习笔记,视频链接在文章最后 


写在前面

        NumPy可以表示一维数组,二维矩阵和更高维的数据,可以对数组中的数据进行非常高效的运算,可以用作数据统计、图像处理、线性代数、傅里叶变换等。Python很慢,NumPy快是因为底层是C语言实现的目标代码,对于要运算的数据,要预先表示成NumPy数组的形式,即向量化,
要想更快的话,可以用GPU对数据进行并行运算。

1.基本命令

>>>import numpy as np                     #导入numpy库,并起个别名为np

>>>np. array ([1,2,3,4,5])                #创建一个数组
array([1,2,3,4,5])
    
>>>np.zeros((3,2))                        #创建3行2列全为0的数组
array([[0.,0.],                
	   [0.,0.],
	   [0.,0.]])

>>>a.shape#获取数组的尺寸
(3,2)

>>>np.ones((2,4))                         #创建2行4列全为1的数组
array([[1.,1.,1.,1.],
	   [1.,1.,1.,1.]])
	   
>>>>>>np.arange(3, 7)	                  #创建递增递减的数组,3到6
array([3,4,5,6])

>>>np.linspace(0,1,5)	                  #0到1,等间距输出5个数的数组
array([0.,0.25,0.5,0.75,1.])

>>>np.random.rand(2,4)	                  #生成2行4列随机数组
array([[0.14057429,0.62834719,0.32584384,0.65987532],
	   [0.87983105,0.20645261,0.35017101,0.11197953]])

>>>a.dtype	                              #numpy中数组默认数据类型是64位浮点数
dtype('float64')    

>>>a = np.zeros((4,2), dtype=np.int32)    #可以在创建数组时指定数组里数据的类型
#np.int8/16/32/64		整型
#np.uint8/16/32/64		无符号整型
#np.float32/64			浮点数	
#bool					布尔值
#str					字符串      ......

>>>b = a.astype(int)	                  #将现有的数组转化为别的数据类型

2.数组基本运算

>>>a = np.array([1,2,3])   		
>>>b = np.array([4,5,6])
>>>a + b					
array([5,7,9])
>>>a / b
array([0.25,0.4,0.5])		                #同尺寸数组的四则运算,同位置进行加减乘除
>>>np.dot(a,b)				                #dot点乘运算,两个向量做内积
32    


>>>a = np.array([[1,2],[3,4]])
>>>b = np.array([[2,0],[0,2]])
>>>a @ b
array([[2,4],[6,8]])		           	#a @ b表示a与b做矩阵乘法,而不是简单的各位置元素相乘


>>>a = np.array([1,2,3])
>>>np.sqrt(a)
array([1.,1.41421356,1.73205081])	        #对数组中每个数据做平方根
>>>np.sin(a)
array([0.84147098,0.90929743,0.14112001])	#sin三角函数运算
>>>np.cos(a)
array([0.54030231,-0.41614684,-0.9899925])	#cos三角函数运算
>>>np.log(a)
array([0.,0.69314718,1.09861229])			#log对数运算
>>>np.power(a,2)
array([1,4,9],dtype=int32)					#指数运算
>>>a * 5
array([5,10,15])							#数乘矩阵运算
>>>a.min									
1											#最小值
>>>a.max										
3											#最大值
>>>a.argmin()
0											#最小值索引
>>>a.argmax()
2											#最大值索引
>>>a.sum()
6											#求和
>>>a.mean()
2.0											#计算平均值
>>>np.median(a)
2.0											#找出中位数
>>>a.var()									#方差
>>>a.std()    								#标准差



>>>a = np.array([[1],
				 [10],
				 [20]])
>>>b=np.array([0,1,2])
>>>a + b
array([1 , 2, 3],
	  [10,11,12],
	  [20,21,22]])							#不同尺寸的数组也可以做运算,广播



>>>a=np.array([[1,2,3,4,5],
			   [5,6,7,8,9]])
>>> a.sum(axis=0)
array([6,8,10,12,14]) 						#参数axis=0时,表示行向量相加
>>>a.sum(axis=1)
array([15,35])								#参数axis=1时,表示列向量相加,以此类推,可推广至n维

>>>a[0,1]	                                #返回第1行第2列的元素的值
>>>a[a<3]	                                #返回一个数组,里面是所有a<3的元素
>>>a[(a>3)&(a%2 == 0)]	
#表示返回一个数组,里面包含所有a>3并且是偶数的数,此处使用逻辑运算符,与(&),或(|)
>>>a[0,0:2]                                	#返回第1行,1到2列的数组
>>>a[0,:]	                                #返回第1行,所有列的数组,下面的写法也可以
>>>a[0]
>>>a[0:9:2]	                                #2表示stride跨度,可以去负值,

总结

        NumPy大大提升了Python中数据计算速度,NumPy中更核心的问题是将问题向量化、并行化的思路。给希望深入学习NumPy的同学推荐这本书《从Python到NumPy》,同时NumPy的官方文档是学习NumPy的最好资料

写在最后

        NumPy入门只是介绍了最基本的命令,更复杂的命令自己去找个项目做一下,在项目中熟悉命令再好不过


一个10分钟的numpy入门教程icon-default.png?t=LA46https://www.bilibili.com/video/BV1Wy4y1h7ii?spm_id_from=333.999.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郑建宇Jy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值