numpy学习笔记.docx

上传人:牧羊曲112 文档编号:3162016 上传时间:2023-03-11 格式:DOCX 页数:7 大小:38.99KB
返回 下载 相关 举报
numpy学习笔记.docx_第1页
第1页 / 共7页
numpy学习笔记.docx_第2页
第2页 / 共7页
numpy学习笔记.docx_第3页
第3页 / 共7页
numpy学习笔记.docx_第4页
第4页 / 共7页
numpy学习笔记.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《numpy学习笔记.docx》由会员分享,可在线阅读,更多相关《numpy学习笔记.docx(7页珍藏版)》请在三一办公上搜索。

1、numpy学习笔记一.一维数组1.推荐 import numpy as np2.foods=np.arrayfoods.shpae #(2,);(3,4)foods.shape=2,3foods.shape=3,-1foods.reshape(2,3)foods.dtype3.创建数组的函数先创建一个Python 的序列对象,然后通过array将其转换为数组,这样做显然效率不高。因此NumPy 提供了很多专门用于创建数组的函数。(1)arange类似于内置函数range,通过指定开始值、终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值。例如下面的程序创建开始值为0、终值为1、

2、步长为0.1 的等差数组,注意终值1 不在数组中:np.arange(a,b,depth)(2)linspace通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint 参数指定是否包含终值,默认值为True,即包含终值(3)logspace所创建的数组是等比数列;基数可以通过base 参数指定,默认值为10。下面通过将base 参数设置为2,并设置endpoint参数为False,创建一个比例为21/12 等比数列np.logspace(0, 1, 12, base=2, endpoint=False)zeros、ones、empty可以创建指定形状和类型的数组。其

3、中:empty仅仅分配数组所使用的内存,不对数组元素进行初始化操作,因此它的运行速度是最快的zeros则将数组元素初始化为0,ones将数组元素初始化为1zeros_like、ones_like、empty_like等函数可创建与参数数组的形状及类型相同的数组。因此,“zeros_like(a)”和“zeros(a.shape, a.dtype)”的效果相同。np.random.rand(10) # 产生一个长度为10、元素值为0 到1 的随机数组fromfunction的第一个参数为计算每个数组元素的函数,第二个参数指定数组的形状。因为它支持多维数组,所以第二个参数必须是一个序列。4.一维数

4、组的元素存取使用和列表相同的存取方式a5 # 用整数作为下标可以获取数组中的某个元素;a3:5 # 用切片作为下标可以获取数组的一部分,包括a3但不包括a5;-和列表不同的是,通过切片获取的新数组是原始数组的一个视图。它与原始数组共享同一块数据存储空间整数列表:使用列表作为下标得到的数组不和原始数组共享数据x=np.arange(10,1,-1)b=x2,3,3#b=array(8,8,7)b2=2#x3=7b2=2x1,4=-1,-2#整数列表也可以修改原数组的值整数数组:当使用整数数组作为数组下标时,将得到一个形状和下标数组相同的新数组当下标数组是一维时,结果和用列表作为下标的结果相同:x

5、=np.arange(1,4,1)b=xnp.array(1,2,1)#b=array(2,3,2)当下标是多维数组时,则得到的也是多维数组:先将下标数组展平为一维数组,并作为下标获得一个新的一维数组,然后再将其形状修改为下标数组的形状 x=np.arange(10,1,1)b=xnp.array(1,2,2,3,3)#b=array(9,8,8,7,7)布尔数组:布尔数组b作为下标存取数组x中的元素时,将收集数组x中所有在数组b中对应下标为True 的元素使用布尔数组作为下标获得的数组不和原始数组共享数据内存,注意这种方式只对应于布尔数组,不能使用布尔列表;如果是布尔列表,则把True 当作

6、1, False 当作0,按照整数序列方式获取数组x 中的元素;布尔数组的长度不够时,不够的部分都当作False;布尔数组一般不是手工产生,而是使用布尔运算的ufunc 函数产生二.多维数组三.结构数组四.ufunc函数1.math 库和NumPy 中的数学函数,各有利弊对单个数值的计算math.sin要比np.sin 快很多;对于单个数值的计算,math.sin 返回的是Python的标准float 类型,而np.sin 返回的是float64 类型2.通过下标获取的数组元素的类型为NumPy 中定义的类型。将其转换为Python 的标准类型还需要花费额外的时间。为了解决这个问题,数组提供了

7、item方法,用来获取数组中的单个元素,并直接返回标准的Python 数值类型3. 算数运算add返回一个数组,数组的每个元素都是两个参数数组中对应元素之和。如果没有指定out 参数,那么将创建一个新的数组来保存计算结果。如果指定了第三个参数out,就不产生新的数组,而是直接将结果保存到指定的数组中。两个数组相加可以简单地写为a+b,而np.add(a,b,a)则可以用a+=b 表示运 算 符 对应的ufunc 函数y = x1 + x2 add(x1, x2 , y)y = x1 - x2 subtract(x1, x2 , y)y = x1 * x2 multiply (x1, x2 ,

8、y)y = x1 / x2 divide (x1, x2 , y), 如果两个数组的元素为整数,那么用整数除法y = x1 / x2 true_divide (x1, x2 , y), 总是返回精确的商y = x1 / x2 floor_divide (x1, x2 , y), 总是对返回值取整y = -x negative(x ,y)y = x1*x2 power(x1, x2 , y)y = x1 % x2 remainder(x1, x2 , y),或mod(x1, x2, , y)4.比较运算使用“=”、“>”等比较运算符对两个数组进行比较,将返回一个布尔数组,它的每个元素值都是两

9、个数组对应元素的比较结果比较运算符ufunc 函数y = x1 = x2equal(x1, x2 , y)y = x1 != x2not_equal(x1, x2 , y)y = x1 < x2less(x1, x2, , y)y = x1 <= x2less_equal(x1, x2, , y)y = x1 > x2greater(x1, x2, , y)y = x1 >= x2greater_equal(x1, x2, , y)5.逻辑运算由于Python 中的布尔运算使用and、or 和not 等关键字,它们无法被重载,因此数组的布尔运算只能通过相应的ufunc 函数进行

10、。这些函数名都以“logical_”开头,np.logical_and, np.logical_not, np.logical_or, np.logical_xor6.位运算符比特运算函数,包括bitwise_and、bitwise_not、bitwise_or 和bitwise_xor 等。也可以使用&、|和等操作符进行计算7.frompyfunc函数通过frompyfunc可以将计算单个值的函数转换为一个能对数组中每个元素进行计算的ufunc 函数:frompyfunc(func, nin, nout)func 是计算单个元素的函数,nin 是func 输入参数的个数,nout 是func 返回值的个数使用vectorize可以实现和frompyfunc类似的功能,但它可以通过otypes 参数指定返回数组的元素类型。otypes 参数可以是一个表示元素类型的字符串,也可以是一个类型列表,使用列表可以描述多个返回数组的元素类型

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号