Python中NumPy基础使用
2016-03-06 17:10
555 查看
Python发展至今,已经有越来越多的人使用python进行科学技术,NumPY是python中的一款高性能科学计算和数据分析的基础包。
ndarray
ndarray(以下简称数组)是numpy的数组对象,需要注意的是,它是同构的,也就是说其中的所有元素必须是相同的类型。其中每个数组都有一个shape和dtype。
shape既是数组的形状,比如
import numpy as np from numpy.random import randn arr = randn(12).reshape(3, 4) arr [[ 0.98655235 1.20830283 -0.72135183 0.40292924] [-0.05059849 -0.02714873 -0.62775486 0.83222997] [-0.84826071 -0.29484606 -0.76984902 0.09025059]] arr.shape (3, 4)
其中(3, 4)即代表arr是3行4列的数组,其中dtype为float64
一下函数可以用来创建数组
array | 将输入数据转换为ndarray,类型可制定也可默认 |
asarray | 将输入转换为ndarray |
arange | 类似内置range |
ones、ones_like | 根据形状创建一个全1的数组、后者可以复制其他数组的形状 |
zeros、zeros_like | 类似上面,全0 |
empty、empty_like | 创建新数组、只分配空间 |
eye、identity | 创建对角线为1的对角矩阵 |
数组的转置和轴对称
转置是多维数组的基本运算之一。可以使用.T属性或者transpose()来实现。.T就是进行轴对换而transpose则可以接收参数进行更丰富的变换
arr = np.arange(6).reshape((2,3)) print arr [[0 1 2] [3 4 5]] print arr.T [[0 3] [1 4] [2 5]] arr = np.arange(24).reshape((2,3,4)) print arr [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] print arr.transpose((0,1,2)) [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]]
数组的运算
大小相等的数组之间做任何算术运算都会将运算应用到元素级别。
arr = np.arange(9).reshape(3, 3) print arr [[0 1 2] [3 4 5] [6 7 8]] print arr*arr [[ 0 1 4] [ 9 16 25] [36 49 64]] print arr+arr [[ 0 2 4] [ 6 8 10] [12 14 16]] print arr*4 [[ 0 4 8] [12 16 20] [24 28 32]]
numpy的简单计算中,ufunc通用函数是对数组中的数据执行元素级运算的函数。
如:
arr = np.arange(6).reshape((2,3)) print arr [[0 1 2] [3 4 5]] print np.square(arr) [[ 0 1 4] [ 9 16 25]]
类似的有:abs,fabs,sqrt,square,exp,log,sign,ceil,floor,rint,modf,isnan,isfinite,isinf,cos,cosh,sin,sinh,tan,tanh,
add,subtract,multiply,power,mod,equal,等等
相关文章推荐
- python
- python 常用
- python datetime时间差
- python 输出重定向
- python 文件夹操作
- python 文件编码
- python unitest基本
- python paramiko基本
- python selenium基本
- 使用pycharm进行win下多个版本python编程&&GTK,py2exe安装
- Python Socket套接字
- windows+python+opencv配置
- Python学习基础:面向对象(1)
- python GUI编程 glade+GTK+py2exe 生成exe文件
- Python 爬虫过程中的中文乱码问题
- Numpy中如何给矩阵增加一行或一列
- Python之常用模块(二)
- [python小记]使用lxml修改xml文件,并遍历目录
- python ConfigParser 参数化配置 学习笔记
- eventlet引发的学习-python:单线程、多线程在IO两方面的性能对比