全屋装修设计软件,seo排名优化培训网站,手机上可以建设网站吗,山东烟台城乡建设学校官方网站详解Numpy#xff08;基于jupyter notbook#xff09; 1.创建数组2.数据类型3.数组切片和索引4.Numpy的广播与数组操作5.数组合并与通用函数6.其他通用函数 1.创建数组
#引入numpy包#xff0c;以后np就代表numpy
import numpy as npanp.arange(10,30,2)#10为起点#xff… 详解Numpy基于jupyter notbook 1.创建数组2.数据类型3.数组切片和索引4.Numpy的广播与数组操作5.数组合并与通用函数6.其他通用函数 1.创建数组
#引入numpy包以后np就代表numpy
import numpy as npanp.arange(10,30,2)#10为起点30为终点2为步长 array数据类型数组
aarray([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])a3[1,2,3] #数据类型列表
a3[1, 2, 3]type(a3)#type()判断数据类型list#方法1
a np.array([1,2,3]) #推荐
aarray([1, 2, 3])#建立多维数组
a1 np.array([[1,2,3],[7,8,9]])
a1array([[1, 2, 3],[7, 8, 9]])#方法2利用函数常用的函数有zeros、ones和empty用法都类似以zeros为例加以说明
anp.zeros(10)#生成10个元素元素全为0 ones()生成的元素全为1
aarray([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])#方法2利用函数常用的函数有zeros、ones和empty用法都类似以zeros为例加以说明
anp.ones(10)#生成10个元素元素全为0 ones()生成的元素全为1
aarray([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])anp.empty(10)#有可能是全0也可能是随机数
aarray([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])#方法2arange函数重要
anp.arange(10)#产生10个从0开始的自然数arange()自然数组
aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])anp.linspace(10,30,12)#10为起始点30为终止点生成12个数默认个数为50随机产生
aarray([10. , 11.81818182, 13.63636364, 15.45454545, 17.27272727,19.09090909, 20.90909091, 22.72727273, 24.54545455, 26.36363636,28.18181818, 30. ])a.ndim #判断a的维数1a.shape #判断a的形状为12行12个数(12,)#改变形状reshape
#一般先生成一个一维的然后reshape为二维的,需要注意的是数据的一致性102*5
anp.arange(10).reshape(2,5)
aarray([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])a.shape(2, 5)2.数据类型
a.dtype #判断a中元素类型区别于typedtype(int64)a1np.array([True,False,False,True])#bool型数据元素只有True或者False
a1.dtypedtype(bool)数据类型及描述 bool 存储为一个字节的布尔值(真或假) int 默认整数相当于 C 的long通常为int32或int64 intc相当于 C 的int通常为int32或int64 intp用于索引的整数相当于 C 的size_t通常为int32或int64 int8字节(-128 ~ 127) int16 16 位整数(-32768 ~ 32767) int32 32 位整数(-2147483648 ~ 2147483647) int64 64 位整数(-9223372036854775808 ~ 9223372036854775807) uint8 8 位无符号整数(0 ~ 255) uint16 16 位无符号整数(0 ~ 65535) uint32 32 位无符号整数(0 ~ 4294967295) uint64 64 位无符号整数(0 ~ 18446744073709551615) float_float64的简写 float16半精度浮点符号位5 位指数10 位尾数 float32单精度浮点符号位8 位指数23 位尾数 float64双精度浮点符号位11 位指数52 位尾数 complex_complex128的简写 complex64复数由两个 32 位浮点表示(实部和虚部) complex128复数由两个 64 位浮点表示(实部和虚部) NumPy 数字类型是dtype(数据类型)对象的实例每个对象具有唯一的特征。 这些类型可以是np.bool_np.float32等。
a3 np.array([1.2, 3.23, 7.88])
a3.dtypedtype(float64)a3.round(1) #a3元素保留位小数四舍五入array([1.2, 3.2, 7.9])a4 a3.astype(np.int32)#a3取整int32去掉小数
a4array([1, 3, 7], dtypeint32)a np.array([True,True,False,True,False])
aarray([ True, True, False, True, False])a.dtypedtype(bool)a5 a.astype(np.float32) #a取单精度浮点数
a5array([1., 1., 0., 1., 0.], dtypefloat32)a5.dtypedtype(float32)3.数组切片和索引
a np.arange(10)
#前包括后不包括从第0位开始观察运行结果注意切出来的仅仅是原来的一个视图并没有改变原数据
#思考一下为啥这样有什么益处取出部分数据进行分析并不改表原来的总数据
a[5:]array([5, 6, 7, 8, 9])aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])a[5:8]#第五个到第八个元素array([5, 6, 7])#从0开始
a[:5]#从0开始的前5个元素默认步长为1 array([0, 1, 2, 3, 4])#从0开始到5步长为2
a[:5:2]array([0, 2, 4])a[::2]#对所有元素从0开始步长为2array([0, 2, 4, 6, 8])a[-1]#取最后一个元素9a[:-1]# 除了最后一个取全部array([0, 1, 2, 3, 4, 5, 6, 7, 8])a[::-1]# 取从后向前相反的元素array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])a[::-3]#从后向前取值步长为3array([9, 6, 3, 0])a[2::-1]# 取从下标为2的元素翻转读取array([2, 1, 0])a np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
b a[::-1, :]
barray([[5, 6, 7, 8, 9],[0, 1, 2, 3, 4]])4.Numpy的广播与数组操作
anp.arange(10).reshape(2,5)
aarray([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])#当array与标量运算时所有的元素都与该标量进行运算
a10array([[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]])#相同形状的数组进行运算则对应元素之间进行运算
aaarray([[ 0, 2, 4, 6, 8],[10, 12, 14, 16, 18]])a1np.arange(10,15)
a1array([10, 11, 12, 13, 14])aa1#每一行均与a1相加array([[10, 12, 14, 16, 18],[15, 17, 19, 21, 23]])5.数组合并与通用函数
#合并 np.concatenate,注意多维数组的输入方式
a np.array([[1,2],[3,4]])
aarray([[1, 2],[3, 4]])b np.array([[5,6],[7,8]])
barray([[5, 6],[7, 8]])np.concatenate([a,b])#默认是行叠加沿行合并或者说沿0轴合并array([[1, 2],[3, 4],[5, 6],[7, 8]])np.concatenate([a,b],axis 1)#对比 axis1横轴(x轴axis0纵轴(y轴默认axis0array([[1, 2, 5, 6],[3, 4, 7, 8]])a np.array([1,2,3,4])
b np.array([5,6,7,8])
np.stack([a,b])array([[1, 2, 3, 4],[5, 6, 7, 8]])np.stack([a,b], axis 1)array([[1, 5],[2, 6],[3, 7],[4, 8]])a np.array([1,2,1,1,3,4,3,5,6,1])
np.unique(a)# 去重 去除重复元素uniquearray([1, 2, 3, 4, 5, 6])6.其他通用函数
np.sqrt(a)
np.sin(a)
np.cos(a)
np.add(a,b)
np.sub(a,b)
np.mod(a,b)#等价于 a%b 求模
a//b #求余
a b #比较运算
ab
~(ab)
#均值
a.mean()
#等价于
np.mean(a)
#求和
a.sum()
#正态分布
np.random.normal( size (3,5))#normal正态分布