利用Python进行数据分析笔记-第四章Numpy
2017-12-07 18:10
756 查看
Numpy的ndarray:一种多维数组对象,其中的所有元素必须是相同类型的
nadrray的’+’,’-‘,’*’,’/’以及shape(表示数组维度的元组)和dtype(说明数组数据类型)的属性
注意,除非显示说明,np.array会尝试为新建的数组推断一个较为合适的数据类型,保存在dtype对象中。
2.使用一些函数创建数组,如zeros,ones,empty,arange(不能传入元组,与range用法相同,只不过得到的为数组)等,传入参数为表示形状的元祖,数组维度与元组中元素个数相同:
常用数组创建函数(如果没有特别指定,数据类型基本都是float)
通过ndarray的astype显示转换dtype
两点需要注意:
1.浮点数转换为整数会截断
2.如果为数字字符串,那么可以转换为数值形式
3.调用astype会创建出新数组(原始数据拷贝),即使新dtype跟老dtype一样也是这样
dtype的另外用法
用其他数组的dtype转换当前数组的类型
注意:数组切片为原数组的视图,视图上的任何修改会直接反映到源数组上。由于Numpy的设计目的是处理大规模数据,过多的复制会产生性能和内存问题。
二维数组索引方式
切片索引
布尔型索引
注意:
可以使用逻辑运算符&和|,不能使用and和or
通过布尔型数组设置值
花式索引
使用数组索引访问行子集:
选取矩阵行列子集:
使用np.ix选取矩阵行列子集:
数组转置
arr.T
二元ufunc:
注意:这些聚合函数既可以当做数组的实例方法调用,也可以numpy.xx()调用
any()和all():
注意:使用np.sort()返回数组副本,而通过arr.sort()则修改数组本身
利用sort()选取分位数:
使用np.in1d()测试arr1中的元素是否在arr2中:
图为保存数组后获得的npy文件
np.savez(),np.load(),通过键值对的方式批量存取数组
测试文件:
二维数组和一维数组做点积得到一维数组:
可以看出,np.random.normal比Python原生的random.normalvariate快很多
nadrray的’+’,’-‘,’*’,’/’以及shape(表示数组维度的元组)和dtype(说明数组数据类型)的属性
创建ndarray
1.使用array(),传入序列型对象,产生含有传入数据的Numpy数组:注意,除非显示说明,np.array会尝试为新建的数组推断一个较为合适的数据类型,保存在dtype对象中。
2.使用一些函数创建数组,如zeros,ones,empty,arange(不能传入元组,与range用法相同,只不过得到的为数组)等,传入参数为表示形状的元祖,数组维度与元组中元素个数相同:
常用数组创建函数(如果没有特别指定,数据类型基本都是float)
ndarray的数据类型
dtype是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息通过ndarray的astype显示转换dtype
两点需要注意:
1.浮点数转换为整数会截断
2.如果为数字字符串,那么可以转换为数值形式
3.调用astype会创建出新数组(原始数据拷贝),即使新dtype跟老dtype一样也是这样
dtype的另外用法
用其他数组的dtype转换当前数组的类型
基本的索引和切片
注意:数组切片为原数组的视图,视图上的任何修改会直接反映到源数组上。由于Numpy的设计目的是处理大规模数据,过多的复制会产生性能和内存问题。
二维数组索引方式
切片索引
布尔型索引
注意:
可以使用逻辑运算符&和|,不能使用and和or
通过布尔型数组设置值
花式索引
使用数组索引访问行子集:
选取矩阵行列子集:
使用np.ix选取矩阵行列子集:
数组转置
arr.T
通用函数:快速的元素级数组函数
一元ufunc:二元ufunc:
运用numpy.where()将条件逻辑表述为数组运算
数学和统计方法
注意:这些聚合函数既可以当做数组的实例方法调用,也可以numpy.xx()调用
用于布尔型数组的方法
计算正数的数量:any()和all():
排序
注意:使用np.sort()返回数组副本,而通过arr.sort()则修改数组本身
利用sort()选取分位数:
唯一化以及其他的集合逻辑
使用np.unique()将一维数组唯一化并排序:使用np.in1d()测试arr1中的元素是否在arr2中:
用于数组的文件输入输出
将数组以二进制格式保存到磁盘
np.save(),np.load()图为保存数组后获得的npy文件
np.savez(),np.load(),通过键值对的方式批量存取数组
存取文本文件
np.loadtxt()测试文件:
线性代数
np.dot(),矩阵乘法二维数组和一维数组做点积得到一维数组:
随机数生成
np.random.normal()可以看出,np.random.normal比Python原生的random.normalvariate快很多
相关文章推荐
- 『利用Python进行数据分析学习』第四章:numpy基础学习
- 利用Python进行数据分析 笔记1
- 利用Pythonj进行数据分析学习笔记——第五章 pandas入门
- 利用Python进行数据分析——笔记2
- 利用python进行数据分析-NumPy基础
- 《利用Python 进行数据分析》 - 笔记(5)
- 利用Python进行数据分析笔记-第二章
- 《利用Python 进行数据分析》 - 笔记(4)
- 利用Python进行数据分析之Numpy
- 利用Python进行数据分析笔记-第三章-ipython
- 利用 Python 进行数据分析(四)NumPy 基础:ndarray 简单介绍
- 利用Python进行数据分析 学习笔记
- 笔记 利用python进行数据分析
- 利用Python进行数据分析笔记(一
- 利用python进行数据分析(学习笔记)
- 利用Python进行数据分析(6) NumPy基础: 矢量计算
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- 利用python进行数据分析-NumPy基础2
- 利用python进行数据分析(O'Relly)学习笔记
- 利用python进行数据分析-NumPy高级应用