Python之NumPy实践之数组和矢量计算

Python之NumPy实践之数组和矢量计算

1. NumPy(Numerical Python)是高性能科学技术和数据分析的基础包。

2. NumPy的ndarray:一种对位数组对象。NumPy最重要的一个特点是其N维数组对象(即ndarray),该对象是是一个快速而灵活的大数据集容器。

3. 创建ndarray

    data1 = [1,2.4,4,3,0]
    arr1 = np.array(data1)
    除np.array可以创建新数组之外,zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。

4. arrage是Python内置函数range的数组版。

5. eye、identity 创建一个正方N x N单位矩阵(对角线为1,其余为0)

6. NumPy主要数据类型:浮点型、复数、整数、布尔值、字符串还有普通的Python对象。

7. 数组和标量之间的计算:数组可以代替循环对数据执行批量操作。这通常称为矢量化(Vectorization)。

8. 不同大小的数组之间的运算叫做广播。

9. 基本的索引和切片

    索引:NumPy数组的索引是一个内容丰富的主题,因为选取数据子集或者单个元素的方式有很多。
    切片:跟列表最重要的区别在于,数组切片是原始数组的视图。

10. 切片索引:切片是沿着一个轴向选取元素的,可以一次传入多个切片,就像传入多个索引那样。

11. 花式索引(Fancy indexing)是NumPy术语,它指的是利用整数数组进行索引。

12. 数组装置和轴对换:

    转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作)。
    对于高维数组,transpose需要得到一个由轴编号组成的元组才能对这些轴进行转置。

13. 通用函数:快速的元素级数组函数。通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数。

14. 利用数组进行数据处理

NumPy数组使得可以将许多数据处理任务表述为简洁的数组表达式。用数组表达式代替循环的做法,通常被称为矢量化。

15. 将条件逻辑表述为数组运算:numpy.where函数是三元表达式x if condition else y 的矢量版本。

16. 排序

    NumPy数组也可以通过sort方法就地排序,多维数组可以在任何一个轴向上进行排序,只需将轴编号传给sort即可.
    顶级方法np.sort返回的是数组的已排序副本,而就地排序则会修改数组本身。

17. 用数组的文件进行输入输出

    将数组以二进制格式保存到磁盘:np.save和np.load
    存取文本文件:pandas中的read_csv和read_table函数;np.loadtxt或np.genfromtxt

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术沉淀

Numpy 求100以内质数和

1145
来自专栏Hongten

对于一个运行时间为100n*n的算法,要使其在同一台机器上,在比一个运行时间为2^n的算法运行的很快,n的最小值是多少

653
来自专栏闻道于事

算法笔记(二)数据结构

1040
来自专栏ACM算法日常

魔咒词典(hash表)- HDU 1880

公众号现在输入题号可以直接查看题目啦~比如输入1000,会显示HDU1000的题目内容

702
来自专栏linjinhe的专栏

WiscKey:LSM-Tree 写放大优化WiscKey 简介WiscKey 带来的好处WiscKey 面临的问题和挑战参考文档

WiscKey 的提出,主要是为了优化 LSM-Tree 的写放大问题。此前已经有不少论文讨论过这个问题,如 LSM-trie 和 PebblesDB,但是大部...

622
来自专栏杂七杂八

numpy.nonzero()函数

官方文档如下: numpy.nonzero(a) Return the indices of the elements that are non-zero....

2163
来自专栏灯塔大数据

每周学点大数据 | No.8基础数据结构之线性表

No.8期 基础数据结构之线性表 Mr. 王:为了以后的知识描述方便,这里简单介绍一下数据结构的概念。数据结构是一个广泛存在于计算机科学中的概念。曾经有一位计...

32911
来自专栏韦弦的微信小程序

Swift 两个数组的交集 II - LeetCode

给定两个数组,写一个方法来计算它们的交集。 例如: 给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].

932
来自专栏冰霜之地

如何设计并实现一个线程安全的 Map ?(上篇)

Map 是一种很常见的数据结构,用于存储一些无序的键值对。在主流的编程语言中,默认就自带它的实现。C、C++ 中的 STL 就实现了 Map,JavaScrip...

622
来自专栏WD学习记录

Python数据结构与算法笔记(4)

当数据项存储在诸如列表的集合中时,我们说它们具有线性或顺序关系。每个数据项都存储在相对与其他数据项的位置。在Python列表中,这些相对位置是单个项的索引值。由...

931

扫码关注云+社区