1、导入numpy包
import numpy as np import random2、生成数组
#数组生成 a1=np.array([1,2,3,4,5,6,7,8,9]) a2=np.array(range(1,10)) a3=np.arange(1,10) print(a1) print(type(a1)) print(a2) print(type(a2)) print(a3) print(type(a3)) #这三种生成数组的结果相同 ,且均为ndarray(类名)类型 #np.array()的作用是把列表(一组数据)转化为元组 #np.arange()最便捷输出结果
3、dtype (1)类型
print(a1.dtype) print(a2.dtype) print(a3.dtype) #dtoye(数据类型) # int32 int64 float32 float64 bool # 可以自行定义输出结果 (2)定义dtype
a4=np.arange(4,9,2,dtype=float) print(a4) print(a4.dtype) a5=np.arange(4,9,2,dtype="int64") print(a5) print(a5.dtype) print("-"*100) #numpy中的bool类型 a6 = np.array([1,0,1,1,1,0],dtype=bool) print(a6) print(a6.dtype)输出结果 4、numpy中的小数
#numpy中的小数 a7 = np.array([random.random() for i in range(10)]) print(a7) print(a7.dtype) #保留固定小数 #用random生成随机小数 a8 = np.round([random.random() for i in range(10)],2) #np.round(b,2) "2"保留小数的位数 print(a8) print(a8.dtype)输出结果
1.`
b1=np.arange(13) print(b1) print(b1.shape)`2
b2=np.array([[1,2,3],[4,5,6]]) print(b2) print(b2.shape) #(2,3) 2行3列3、
b3=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]) print(b3) print(b3.shape) #(2,2,3) 2块 2行三列4、
b4=np.arange(12) print(b4.reshape((3,4))) print(b4.reshape((2,2,3))) #reshape 之后是不会改变原始形状 #重新赋值才会改变``5、转为一维数据
b4 = b4.reshape((2,6)) #转为一维的数据 (shape()有几个数就是几维) print(b4.reshape((12,))) print(b4.reshape((12,)).shape)6,以下转化出的不是一维数据
print(b4.reshape((1,12))) print(b4.reshape((1,12)).shape) print(b4.reshape((12,1))) print(b4.reshape((12,1)).shape) #输出结果为(12,1) 是二维数据7、通过计算 、flatten()转化成一维
#通过计算 转化成一维 shape(行,列) reshape(行,列) 换成一维reshape(shape[0]*shape[1]) #shape[0]是shape()中第一位数,shape[1]是shape()中第二位数 索引的知识点 b5 = b4.reshape(b4.shape[0]*b4.shape[1],) print(b5) print(b5.shape) #便捷 flatten() print(b4.flatten()) print(b4.flatten().shape)1、`
c1 = np.arange(24) c1 = c1.reshape(4,6) print(c1) print("-"*100) print(c1+2) #广播机制:每个数都加上2 加减乘除都一样 print(c1/2) print(c1/0) #c1/0 输出的时候会有RuntimeWarning # 正常一个数字除以零是无意义的 在numpy中 (会出现 nan inf) # nan :not a number(无效数字) #inf :infinite(无穷大) 有点极限的意思 洛必达 a/0 型 趋于无穷大