标签:++ source 数组元素 文本 blank nes com 返回 cti
Numpy简介
Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。其部分功能如下:
①ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
②用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
③用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
④线性代数、随机数生成以及傅里叶变换功能。
⑤用于集成由C、C++、Fortran等语言编写的代码的工具。
创建数组
创建数组最简单的办法是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的NumPy数组。以一个列表的转换为例:
- data1=[6,7.5,8,0,1]
- arr1=np.array(data1)
- arr1.dtype
- data2=[[1,2,3,4],[5,6,7,8]]
- arr2=np.array(data2)
- np.zeros(10)
- np.ones((3,6))
- range(10)
- arange(10)
- eye(10)
- arr1=np.array([1,2,3],dtype=np.float64)
数组和标量之间的运算
- arr=np.array([[1.,2.,3.],[4.,5.,6.]])
- arr*arr
- arr-arr
- 1/arr
- arr*0.5
基本的索引与切片
- arr=np.arange(10)
- arr[5]
- arr[5:8]
- arr[5:8]=12
- arr_slice=arr[5:8]
- arr_slice[:]=64
- arr[5:8].copy()
- arr2d=np.array([[1,2,3],[4,5,6],[7,8,9]])
- arr2d[2]
- arr2d[0][2] arr2d[0,2]
- arr2d[:2]
- arr2d[:,:1]
- arr2d[:-2]
数组转置和轴对换
转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行复制操作)。
- arr=np.arange(15).reshape((3,5))
- arr.T
- arr=np.random.randn(6,3)
- np.dot(arr.T,arr)
通用函数:快速的元素级数组函数
通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数。
- arr=np.arange(10)
- np.sqrt(arr)
- exp
- np.add(x,y)
利用数组进行数据处理
用数组表达式代替循环的做法,通常称为矢量化
将条件逻辑表述为数组运算
Numpy.where函数是三元表达式x if condition else y的矢量化版本
- xarr=np.array([1.1,1.2,1.3,1.4,1.5])
- yarr=np.array([2.1,2.2,2.3,2.4,2.5])
- cond=np.array([True,False,True,True,False])
- result=np.where(cond,xarr,yarr)
数学和统计方法
可以通过数组上的一组数学函数对整个数组或某个轴向的数据进行统计计算。Sum、mean以及标准差std等聚合计算(aggregation,通常叫做约简(reduction))既可以当做数组的实例方法调用,也可以当做顶级NumPy函数使用:
- arr=np.random.randn(5,4)
- arr.mean(); np.mean(arr); arr.sum();
- arr.mean(axis=1)
用于布尔型数组的方法
布尔值会被强制转换为1(True)和0(False)。因此,sum经常被用来对布尔型数组中的True值计数:
- arr=randn(100)
- (arr>0).sum()
- bools.any()
- bools.all()
排序
跟Python内置的列表类型一样,NumPy数组也可以通过sort方法就地排序(修改数组本身)。
- arr=randn(8)
- arr.sort()
- arr=randn(5,3)
- arr.sort(0)
唯一化
- ints=np.array([3,3,3,2,2,1,1,4,4])
- np.unique(names)
用于数组的文件输入输出
Numpy能够读写磁盘上的文本数据或二进制数据。
- arr=np.arange(10)
- np.save(‘some_array’,arr)
- np.load(‘some_array’)
- np.savez(‘array_archive.npz’,a=arr,b=arr)
- a=np.arange(0,12,0.5).reshape(4,-1)
- np.savetxt(‘E:\\knakan\\a.txt’,a)
- np.loadtxt(‘E:\\kankan\\a.txt’)
- np.savetxt(‘E:\\kankan\\a.txt’,a,fmt=”%d”,delimiter=”,”)
- np.loadtxt(‘E:\\kankan\\a.txt’,delimiter=”,”)
线性代数
- x=np.array([[1.,2.,3.],[4.,5.,6.]])
- y=np.array([[6.,23.],[-1,7],[8,9]])
- x.dot(y)
【参考文献】
[1]. 利用Python进行数据分析,wes McKinney著,唐学韬译,2014年,机械工业出版社
Numpy基础笔记
标签:++ source 数组元素 文本 blank nes com 返回 cti
原文地址:http://www.cnblogs.com/to-creat/p/6264062.html