微前端架构如何改变企业的开发模式与效率提升
699
2022-11-11
numpy的使用说明(二):这一章设计很多重要知识点(必看)
1、numpy中ndarray的一些常用属性
ndim:返回数组的维数;shape:返回数组的形状;dtype:返回数组元素的数据类型;size:返回数组中元素的个数;itemsize:返回数组中每一个元素占用空间的大小,以字节为单位;nbytes:返回数组中所有元素占用空间的大小,以字节为单位;
1)举例说明
x = np.arange(10).reshape(2,5)display(x)display(x.ndim) display(x.shape)display(x.dtype)display(x.size)display(x.itemsize)display(x.nbytes)
结果如下:
2)单独说一下属性itemsize和nbytes的含义
2、列表与数组之间的相互转化
1)列表转数组:直接将一个列表当作array()函数的参数即可;
import numpy as nplist1 = list(range(10))display(list1)array1 = np.array(list1)display(array1)
结果如下:
2)数组转列表:tolist()
import numpy as nparray2 = np.arange(10).reshape(2,5)display(array2)list2 = array2.tolist()display(list2)array3 = np.arange(10)display(array3)list3 = array3.tolist()display(list3)
结果如下:
3、numpy中的常数(了解)
正无穷:Inf = inf = infty = Infinity = PINF负无穷:NINF正零:PZERO负零:NZERO非数值:nan = NaN = NAN自然数e:eπ:pi伽马:euler_gammaNone:newaxis
操作如下:
display(np.inf)display(np.NINF)display(np.PZERO)display(np.NZERO)display(np.nan)display(np.e)display(np.pi)display(np.euler_gamma)display(np.newaxis)
结果如下:
4、numpy中的数据类型与数据类型转化
1)numpy中常用的的数据类型
2)numpy中的数据类型转化
记住一句话:numpy中的数据类型转换,不要使用x.dtype修改元素的数据类型,最好用x.astype()这种方式。
① 使用dtype原地修改数组的数据类型;
x = np.array([1.2,3.4,5.6],dtype=np.float64)display(x)display(x.dtype)display(x.nbytes)# --------------------------------------------x.dtype="float32"display(x)display(x.nbytes)# --------------------------------------------x.dtype="float16"display(x)display(x.nbytes)
结果如下:
② 使用dtype原地修改数组的数据类型,为什么会出现上述现象?
③ 使用astype()函数修改数组的数据类型:相当于新创建了一个数组;
z = np.array([1.5,3.7,4.8])display(z)display(z.dtype)# --------------------------zz = z.astype(np.int64)display(zz)display(zz.dtype)
结果如下:
5、改变数组的形状
使用numpy中的reshape()函数修改数组对象;使用数组对象的reshape()函数修改数组对象(这个更好用);
1)使用numpy中的reshape()函数修改数组对象;
xx = np.arange(10).reshape(2,5)xxx = np.reshape(xx,(5,2))display(xxx)
结果如下:
2)使用数组对象的reshape()函数修改数组对象;
yy = np.arange(10).reshape(2,5)display(yy)
结果如下:
3)改变数组形状时,如果维度大于1,可以将“最后一个维度”设置为-1;
p = np.arange(6).reshape(2,3)display(p)# ----------------------------q = np.arange(6).reshape(2,-1)display(q)
结果如下:
注意:可以这样做的原因在于,当你指明了前面的维度,最后一个维度会根据数组元素个数和前面的维度数,自动计算出最后一个维度的维度数,也就是说【维度一 * 维度二 * … * 维度N = 元素个数】。
6、数组扁平化:ravel()函数和flatten()函数
① 两个函数的相同点
不管你给我的数组是多少维的,通过这两个函数之后,我都给你压缩为一维数组。
② 两个函数的不同点
③ 操作如下
array1 = np.array([[1,2,3],[4,5,6]])display(array1)array2 = array1.ravel()display(array2)array3 = array1.flatten()display(array3)# 此时我们修改array2和array3中的某个元素,看看对于array1的影响array2[0] = 666display(array2)display(array1)array3[1] = 888display(array3)display(array1)
结果如下:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~