文章目录
1. numpy两种基本对象: ndarray和ufunc
-
ndarry是存储单一数据类型的多维数组
-
ufunc是能够对数组进行处理的函数
2. 数组的属性
3. 数组的创建
-
array创建一维或多维数组
-
numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)
- object: 接收array,表示想要创建的数组
- dtype: 表示数组说需要的数据类型,如果为给定,则选择保存对象所需的最小类型
-
例如:
-
创建一维数组
-
创建二维数组
-
查看数组的维数
-
查看数组的尺寸
-
查看数组元素个数
-
-
-
range通过指定开始值,终止值,步长来创建一维数组,不含终值
-
linspace通过指定开始值,终止值,元素个数来创建一维数组,包含终值
-
logspace和linspace类似,生成等比数列
- 生成1~100,10个元素的等比数列
- 其中1表示十的一次方,2表示十的二次方,10表示元素的个数
- 生成1~100,10个元素的等比数列
-
zeros生成全为0的数组
-
eye创建对角线上值全为1的数组
-
ones创建数值全为1的数组
-
diag创建除对角线以外全为0的数组,对角线可以为0,也可以不为0
-
创建随机数组
-
random
-
rand生成服从均匀分布的随机数
-
randn生成服从正态分布的随机数
-
randint生成给定上下限范围的随机数
-
numpy.random.randint(low, high=None, size=None, dtype=‘l’)
-
low为最小值,high为最大值,size为数组的shape
-
-
4.数组的索引
-
一维数组的索引,和列表相似
-
二维数组的索引,各个维度之间用逗号隔开
5. 数组的形态变换
-
reshape改变数组的形状,不修改原始数据
-
resize(())在原始数据上进行变换,没有返回值
-
T对原数组进行转置
-
将数组展平
- ravel
-
flatten可以横向或者纵向展平
-
hstack横向组合,行数必须相同
-
vstack纵向组合,列数必须相同
-
concatenate可以实现横向和纵向组合,其中参数axis=0表示纵向,axis=1表示纵向
-
分割
-
hsplit(ary, indices_or_sections) 横向分割
-
vsplit(ary, indices_or_sections) 纵向分割
-
split(ary, indices_or_sections, axis=0)
-
6. 矩阵的创建
-
mat和matrix函数创建矩阵
-
bmat分块矩阵
-
矩阵的运算
-
矩阵的属性
-
在numpy的逻辑运算中,numpy.all函数表示逻辑and,numpy.any函数表示逻辑or
-
不同形状的数组进行运算时,numpy会实行广播机制,其遵循一下四则法则:
- 让所有的输入数组向其中shape最长的数组看齐,shape中不足的部分通过在前面加1补齐。
- 输出数组的shape是输入数组shape的各个轴上的最大值。
- 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为 1,则这个数组能够用来计算,否则出错。
- 当输入数组的某个轴的长度为1时,沿着此轴运算时使用此轴上的第一组值。
7. numpy读写文件
- save函数以二进制的格式保存数据
- numpy.save(file, arr, allow_pickle=True, fix_imports=True)
- 参数 file 为要保存的文件的名称
- 参数arr为需要保存的数组
- 其文件的扩展名.npy是系统自动添加的
- savez函数保存多个数组
- numpy.save(file, arr1,arr2)
- savetxt函数可将数组写到以某种分隔符隔开的文本文件中
- np.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’,footer=’’, comments=’# ')
- fname 文件名, X数组数据
- delimiter 数据分隔符
- loadtxt函数执行的是相反的操作,即把文件加载到一个二维数组中
- genfromtxt函数和loadtxt函数相似,不过它面向的是结构化数组和缺失数据。它通常使用的参数有3个,即存放数据的文件名参数“fname”、用于分隔的字符参数“delimiter”和是否含有列标题参数“names”
- load函数从二进制的文本中读取数据
8. 排序
-
sort 函数是最常用的排序方法,无返回值。如果目标函数是一个视图,则原始数据将会被修改
据
- [外链图片转存中…(img-YsFWW8st-1597628219313)]
9. 数组的去重
- ndarray.uniform()