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
时间: 2024-11-03 22:35:57

Python之NumPy实践之数组和矢量计算的相关文章

[python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决

这篇文章主要讲述Python如何安装Numpy.Scipy.Matlotlib.Scikit-learn等库的过程及遇到的问题解决方法.最近安装这个真是一把泪啊,各种不兼容问题和报错,希望文章对你有所帮助吧!你可能遇到的问题包括:         ImportError: No module named sklearn 未安装sklearn包         ImportError: DLL load failed: 找不到指定的模块         ImportError: DLL load

《Python数据科学实践指南》——0.3 为什么是Python

0.3 为什么是Python 通过书名,各位读者就应该知道这是一本讲解Python编程的书了.数据科学只是个引子,我希望能通过相关的例子和练习激发出读者的兴趣,帮助读者除掉编程这条拦路虎.在很多非计算机相关专业的人的概念里,编程是要归为玄学分类的,通过一堆意义不明的符号就能驱动计算机完成各种各样的任务,是不是有点像魔法师口中所念的咒语.但事实上,计算机只能做两件事情,执行计算并记录结果,只不过它的这两项能力远远超过人类大脑的能力(读者可能看过一些文章,其中有些研究声称尝试估算过人类大脑的计算能力

《Python数据科学实践指南》一0.3 为什么是Python

0.3 为什么是Python 通过书名,各位读者就应该知道这是一本讲解Python编程的书了.数据科学只是个引子,我希望能通过相关的例子和练习激发出读者的兴趣,帮助读者除掉编程这条拦路虎.在很多非计算机相关专业的人的概念里,编程是要归为玄学分类的,通过一堆意义不明的符号就能驱动计算机完成各种各样的任务,是不是有点像魔法师口中所念的咒语.但事实上,计算机只能做两件事情,执行计算并记录结果,只不过它的这两项能力远远超过人类大脑的能力(读者可能看过一些文章,其中有些研究声称尝试估算过人类大脑的计算能力

深入理解NumPy简明教程---数组3(组合)_python

前两篇文章对NumPy数组做了基本的介绍,本篇文章对NumPy数组进行较深入的探讨.首先介绍自定义类型的数组,接着数组的组合,最后介绍数组复制方面的问题. 自定义结构数组 通过NumPy也可以定义像C语言那样的结构类型.在NumPy中定义结构的方法如下: 定义结构类型名称:定义字段名称,标明字段数据类型. student= dtype({'names':['name', 'age', 'weight'], 'formats':['S32', 'i','f']}, align = True) 这里

深入理解NumPy简明教程---数组1_python

目前我的工作是将NumPy引入到Pyston中(一款Dropbox实现的Python编译器/解释器).在工作过程中,我深入接触了NumPy源码,了解其实现并提交了PR修复NumPy的bug.在与NumPy源码以及NumPy开发者打交道的过程中,我发现当今中文NumPy教程大部分都是翻译或参考英文文档,因此导致了许多疏漏.比如NumPy数组中的broadcast功能,几乎所有中文文档都翻译为"广播".而NumPy的开发者之一,回复到"broadcast is a compoun

机器学习中数据处理与可视化的python、numpy等常用函数

写在前面:本文所针对的python版本为python3.0以上! np.tile() tile()相当于复制当前行元素或者列元素 import numpy as np m1 = np.array([1, 2, 3, 4]) # 行复制两次,列复制一次到一个新数组中 print(np.tile(m1, (2, 1))) print("===============") # 行复制一次,列复制两次到一个新数组中 print(np.tile(m1, (1, 2))) print("

python实现合并两个数组的方法

  本文实例讲述了python实现合并两个数组的方法.分享给大家供大家参考.具体如下: python合并两个数组,将两个数组连接成一个数组,例如,数组 a=[1,2,3] ,数组 b=[4,5,6],连接后:[1,2,3,4,5,6] 方法1 ? 1 2 3 a=[1,2,3] b=[4,5,6] a=a+b 方法2 ? 1 2 3 a=[1,2,3] b=[4,5,6] a.extend(b) 希望本文所述对大家的Python程序设计有所帮助.

Python中的二维数组的操作方法

这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用法: ? 1 2 3 4 5 6 #创建一个宽度为3,高度为4的数组 #[[0,0,0], # [0,0,0], # [0,0,0], # [0,0,0]] myList = [[0] * 3] * 4 但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成 ? 1 2 3 4 5 6 7 [[0,1,0],   [0

Python应用与实践

Python应用与实践 目录 1.      Python是什么? 1.1.      Python语言 1.2.      Python哲学 2.      Python在工作中的应用 2.1.      实例1:文件批量处理 2.2.      实例2:xml与excel互转 2.3.      总结 3.      为什么选择Python? 3.1.      前途!钱途! 3.2.      开发效率极高 3.3.      总而言之 4.      还有谁在用Python? 4.1.