数据分析实战——04丨Python科学计算:用NumPy快速处理数据
- 使用 NumPy 让你的 Python 科学计算更高效
- 它不仅是 Python 中使用最多的第三方库,而且还是 SciPy、Pandas 等数据科学的基础库
- 它所提供的数据结构比 Python 自身的“更高级、更高效”
- 为什么要用 NumPy 数组结构而不是 Python 本身的列表 list?
- 这是因为列表 list 的元素在系统内存中是分散存储的,而 NumPy 数组存储在一个均匀连续的内存块中
- 这样数组计算遍历所有的元素,不像列表 list 还需要对内存地址进行查找,从而节省了计算资源
- 需要一些技巧来提升内存和提高计算资源的利用率
- 一个重要的规则就是:避免采用隐式拷贝,而是采用就地操作的方式
- 举个例子,如果我想让一个数值 x 是原来的两倍,可以直接写成 x*=2,而不要写成 y=x*2
- 在 NumPy 里有两个重要的对象
- ndarray(N-dimensional array object)解决了多维数组问题
- 而 ufunc(universal function object)则是解决对数组进行处理的函数
- ndarray 对象
- ndarray 实际上是多维数组的含义
- 通过函数 shape 属性获得数组的大小,通过 dtype 获得元素的属性
- ufunc 运算
- ufunc 是 universal function 的缩写,它能对数组中每个元素进行函数操作
- 统计最大值与最小值之差 ptp()
- 统计数组的百分位数 percentile()
- 统计数组中的中位数 median()、平均数 mean()
- 统计数组中的加权平均值 average()
- 统计数组中的标准差 std()、方差 var()
- NumPy 排序
- sort(a, axis=-1, kind=‘quicksort’, order=None),默认情况下使用的是快速排序
- 在 kind 里,可以指定 quicksort、mergesort、heapsort 分别表示快速排序、合并排序、堆排序
行者无疆,始于足下
行走,思考,在路上