- NumPy数组的创建
- 关于数据的类型
强制转换为统一类型
2. 数组创建的方法介绍
1.数组的创建函数
1. 直接py数组转np数组
np.array(数组)
2.np.zeros(shape,dtype=float,order=C)
C是行式存储,F是列式存储
np.zeros((5,3), dtype=float, order=C)
5行3列 序号按行排
np.zeros((5,3), dtype=float, order=F)
5行3列,但是数量按列排 怎么感觉那么奇怪呢,遇到问题再说吧
3.np.full(shape,full_value,dtype=NONE,order=‘C’)
这个和Zero的区别就是Zero相当于 np.full(shape,0,dtype=float,order=‘C’)
4.np.eye(N,M=NONE,k=0,dtype=float)
N是行数,
M是列数,默认是none,也就是和行数一致
K=0表示向右偏移0个位置
单位矩阵(线性代数) 主对角线为1,其余为0
5.np.linspace(start,stop,num=50,endpoint=True,retstep=False,Dtype=NONE) 等差数列
起始,结束,长度,是否包含终点值,是否返回等差步长
不管如何,起始值总会留下,所以第一个和第二个并不具备参考价值
6. np.arange(start,stop(不包含),step=1,dtype=None)
默认步长为1
7.np.random.rand 随机数
可以调整size,从而直接生成数组
8.np.random.randn() 正态分布
随机服从标准正态分布, 参数与随机数一致
np.random.normal() 标准正态分布
9.np.random.rand
0,1左闭右开 随机数
2. 数组的参数
在这里插入图片描述
3.对数组的操作
1.索引操作
写法两种,一种直接数组名[a][b] 一种数组名[a,b] 也可以直接对一行赋值
2.切片与翻转
使用冒号切片,不取尾
连续多行 切片同样道理
不连续多行 多层中括号
翻转
取所有行和第某列
假如二维数组 先取所有行:, 然后取dn列
[;,dn]
取某行 的某些列, 这样的话,对行进行切片,对列进行取值
行切片
:-1
[1:3,dn]
连续多列
切片
不连续多列, 中括号
对哪个进行翻转就进行::-1
3.合并
np.concatenate(arrays,axis)
axis =0 默认上下合并 np.vstack
axis = 1 左右合并 等同于 np.hstack
4.数组拆分
np.vsplit(array,n)
n必须要被整除 拆行
按特定规则拆
注意输入1,2,4
将0行拆为1个数组
1行拆为1个数组
2,3拆为1个数组
4,5拆为1个数组
说明, 拆除是从开头开始切片拆除的,取前不取后
水平切分hspilt 一样的
5.赋值/拷贝
如果直接将数组进行赋值,则是将引用进行赋值,还是同一个地址,
使用copy方法,则重新创建一个数组,将值赋值过去