python numpy 的运算
一,基本运算
>>> a = array([1,2,3,4])
>>> a
array([1, 2, 3, 4])
>>> b=arange(4)
>>> b
array([0, 1, 2, 3])
>>> a + b
array([1, 3, 5, 7])
>>> a - b
array([1, 1, 1, 1])
>>> a *b
array([ 0, 2, 6, 12])
>>> a*2
array([2, 4, 6, 8])
>>> a**2
array([ 1, 4, 9, 16])
>>> a<2
array([ True, False, False, False], dtype=bool)
>>> a = array([[1,2], [2, 3]])
>>> a
array([[1, 2],
[2, 3]])
>>> b=arange(4).reshape(2,2)
>>> b
array([[0, 1],
[2, 3]])
>>> a*b #对应元素直接乘
array([[0, 2],
[4, 9]])
>>> dot(a,b) #矩阵的乘法
array([[ 4, 7],
[ 6, 11]])
二, +=, *= 不会创建新的数组,而只是更改已存在的数组
>>> a = ones((2,2))
>>> b = random.random((2,2))
>>> a
array([[ 1., 1.],
[ 1., 1.]])
>>> b
array([[ 0.10061284, 0.23855578],
[ 0.93143312, 0.49098678]])
>>> a *= 3
>>> a # a本身 发生了改变
array([[ 3., 3.],
[ 3., 3.]])
>>> b += 1
>>> b
array([[ 1.10061284, 1.23855578],
[ 1.93143312, 1.49098678]])
>>> a += b
>>> a
array([[ 4.10061284, 4.23855578],
[ 4.93143312, 4.49098678]])
三, sum, min, max方法
>>> b.sum()
5.7615885259105326
>>> b.min()
1.1006128420882511
>>> b.max()
1.9314331248999363
>>> b = arange(6).reshape(2,3)
>>> b
array([[0, 1, 2],
[3, 4, 5]])
>>> b.sum(axis = 0) #可以指定到某个axis,
array([3, 5, 7])
>>> b.sum(axis = 1)
array([ 3, 12])
>>> b.min(axis = 1)
array([0, 3])
>>> b.min(axis = 0)
array([0, 1, 2])
四, 通用函数, ufunc
>>> a = arange(4)
>>> a
array([0, 1, 2, 3])
>>> min(a)
0
>>> sum(a)
6
>>> max(a)
3
>>> exp(a)
array([ 1. , 2.71828183, 7.3890561 , 20.08553692])
>>> sqrt(a)
array([ 0. , 1. , 1.41421356, 1.73205081])
>>> b = array([4,5,6,7])
>>> add(a,b)
array([ 4, 6, 8, 10])
>>> mean(a)
1.5
>>> std(a)
1.1180339887498949
>>> cov(a)
array(1.6666666666666667)
>>> sort(a)
array([0, 1, 2, 3])
当然还有更多。。。。
五, 索引切片和迭代
一维数组:
>>> a = arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> a[0]
0
>>> a[-1]
9
>>> a[0:3]
array([0, 1, 2])
>>> a[:6:2] = 1000 #相当于a[0:6:2] = 1000
>>> a
array([1000, 1, 1000, 3, 1000, 5, 6, 7, 8, 9])
>>> a[::-1]
array([ 9, 8, 7, 6, 5, 1000, 3, 1000, 1, 1000])
>>> for i in a:
... print i*2
...
2000
2
2000
6
2000
10
12
14
16
18
二维数组:
>>> b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> b[1,1] # 逗号前面是horizontal axis, 逗号后面是vertical axis
5
>>> b[ : , 3] # 全部横轴的第四列的元素
array([ 3, 7, 11, 15])
>>> b[0:-1, 3]
array([ 3, 7, 11])
>>> b[1:3, :] #第二,三行的所有元素
array([[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> for i in b: #i对应的是row
... print i
...
[0 1 2 3]
[4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
如果想返回每个元素, 用flat方法。
>>> for i in b.flat: #i 对应element
... print i
...
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
更多细节请阅读:
http://phddreamer.blog.163.com/blog/static/18993409620135271852137/
http://scipy.org/Numpy_Example_List
http://scipy.org/NumPy_Tutorial
http://www.tramy.us/
python numpy 的运算的更多相关文章
- Python/Numpy大数据编程经验
Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点. ...
- 在python&numpy中切片(slice)
在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...
- Python numpy中矩阵的用法总结
关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...
- Python NumPy学习总结
一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...
- CS231n课程笔记翻译1:Python Numpy教程
译者注:本文智能单元首发,翻译自斯坦福CS231n课程笔记Python Numpy Tutorial,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成,Flood Sung ...
- NumPy算数运算
NumPy - 算数运算 用于执行算术运算(如add(),subtract(),multiply()和divide())的输入数组必须具有相同的形状或符合数组广播规则. 示例 import numpy ...
- Python Numpy基础教程
Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...
- python numpy库np.percentile用法说明
在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可…… a = range(1,101) #求取a数列第90%分位的数值 np.per ...
- Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)
Python Numpy shape 基础用法 shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入 ...
随机推荐
- 在现有 SharePoint 服务器上安装 PowerPivot for SharePoint
步骤1: 检查 SQL Server 2008 R2 Analysis Services 实例的“程序”文件夹.如果您找到了现有安装或之前安装的证据,则执行剩余步骤.否则,直接执行步骤 2:安装 Po ...
- java之代理模式
静态代理: java代理是一种模式--代理模式.采用代理模式,可以在不改变目标类代码的基础上,通过代理对象,来增加额外的功能(比如增加日志检测等)或者只需要目标对象的部分行为. java中,代理分为静 ...
- 优化MYSQL数据库的方法
1.选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM2.使用连接(JOIN)来代替子查询: a.删除没有任何订单客户:DELETE ...
- C# 正则表达式 验证:数字、带小数点数字、电话和手机
一.带小数点数字 public static bool IsNumber(string input) { string pattern = "^-?\\d+$|^(-?\\d+)(\\.\\ ...
- 【个人使用.Net类库】(2)Log日志记录类
开发接口程序时,要保证程序稳定运行就要时刻监控接口程序发送和接收的数据,这就需要一个日志记录的类将需要的信息记录在日志文件中,便于自己维护接口程序.(Web系统也是如此,只是对应的日志实现比这个要复杂 ...
- 一步步学习JSON
什么是Json json是JavaScript Object Notation(javascript对象表示法)的缩写,是一种轻量的数据格式,是基于javascript的一个子集.与XML一样,jso ...
- greenDao 学习之坑 "java-gen" 目录下的类不能引用
由于公司最近的项目需要频繁地操作数据库,所以选用greenDao. 网上搜了一 大堆教程,我卡在java工程运行后生成的几个类不能引用了. 看了一下区别,教程的java-gen 目录是蓝色的小框框 , ...
- Cygwin下载,安装教程
Cygwin是一个用于在Windows上模拟Linux环境的软件,由于工作上的需要,我要使用它,至于为什么用它,我在这里不做过多的解释,本文的目的,旨在于解决Cygwin安装上的问题. 原始的安装Cy ...
- Date的转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String str = sdf.format(一个date对 ...
- MongoDB的C#驱动程序教程(译) 转
1.概述 本教程是10gen支持C#驱动程序MongoDB的介绍.假定您熟悉使用MongoDB,因此主要集中在如何使用C#访问MongoDB的. 它分为两个部分:C# 驱动程序 ,BSON图书馆.C# ...