数据类型
静态和动态数据的区别!
C++和Python
列表的含义
列表中元素保存的是地址
数组必备特征:类型 数据 维度 步幅
不在指向地址 numpy提供一个与C性能差不多的数组
查看numpy的版本:numpy.__version__
1.创建数组
<1>列表创建数组 a1 = np.array([1,2,3,4,5])
<2>元组创建数组 a2 = np.array((1,2,3,4,5))
<3>从头创建数组 a3 = np.arange(10) 创建一个连续的数组
a1=np.zeros((2,2))#生成一个所有元素都是0的2行2列的数组
a2=np.ones((3,2))#生成一个所有元素都是1的3行2列的数组
a3=np.full((2,2),8)#生成一个所有元素都是8的2行2列的数组
a4=np.eye(3)#生成一个在斜方形上元素为1,其他元素都为0的3x3的矩阵
2.数组属性
ndarray.dtype
指定数组类型
a1=np.array([1,2,3],dtype=np.int64)
秩:n.ndim 数组的维度的元组
维度 形状 :n.shape (x,y) x行 y列
ndarray.size:获取数组中总的元素的个数。
(x,y,z) 有x个元素 每个元素中y行z列
ndarray.itemsize:数组中每个元素占的大小,单位是字节。
3.数组的修改
修改数组维度 n.reshape((x,y)) 这里是一维修改二维 x行y列
n.reshape((x,y,z)) 一维修改三维 有x个元素 每个元素中y行z列
n.flatten() 多维直接变成一维
n.size 元素个数
.dtype 数据类型
.itemsize 大小(字节大小)
4.数组的操作
增 删 改 查
n[x] 一维查找
n[x,y] 二维查找 x行 第y个
n[x:y] 第x行到第y-1行 不要屁股哦!
n[x:y,p:q] 第x行到第y-1行 第p列到第q列
n[x:y:z] 第x行到第y-1行 步长z
5.布尔索引
a = n<x 数组n中小于x 返回一个全是布尔值数组
n[a] 找到满足a条件的数 以一个数组的形式
n[x][y]=k 第x行第y个替换成k
n[a]=k 找到满足a条件的数 以一个数组的形式 并替换成k
生成随机数组
np.random.randit(m,n,size(x,y)) 从m到n 随机生成一个x行y列的数组
n.resize((x,y)) 改变本身!! reshape 不改变本身!!! 深浅拷贝
数组的拼接(数据维度要一样)
a1 a2
a3 = np.vstack([a1,a2]) 上下拼接(列数必须相同)
a4 = np.hstack([a1,a2]) 左右拼接(行数必须相同)
np.concatenate([a1,a2],axis=) axis=0 竖直拼接 axis=1 水平拼接 axis代表参考轴
a是x行y列的数组 a.T变成y行x列
数组分割
np.hsplit(a,x) 把a数组水平分割成x份
np.hsplit(a,[0,1]) 把a数组在第0行和第1行处切割一下
np.vsplit(a,x) 把数组竖直分割成x份
np.array_split(a,x,axis=) 数组a切成x份 axis=0 竖直切割 axis=1 水平切割 axis代表参考轴