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]就是读取矩阵第一维度的长度.它的输入 ...
随机推荐
- BroadcastReceiver的实例----基于Service的音乐播放器之二
该程序的后台Service会在播放状态发生改变时对外发送广播(广播将会激发前台Activity的BroadcastReceiver):它也会采用BroadcastReceiver监听来自前台Activ ...
- HBase vs. BigTable Comparison - HBase对比BigTable
HBase vs. BigTable Comparison HBase is an open-source implementation of the Google BigTable architec ...
- plsql快速选中一行的快捷键
实际工作中,经常用到pl/sql,在sql window中,经常性的用到选中一行然后按F8执行这条sql语句.用鼠标选中一行不是特别方便.用快捷键就快多了. 1.使用home键(不是windows键奥 ...
- oracle查询语句大全
1.查处oracle数据库的字符编码格式 select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET'; 如果查出的是ZH ...
- SQL查询表占用空间大小
SQL查询表占用空间大小. create table tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),inde ...
- HDU 4050 wolf5x 概率dp 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=4050 题意: 现在主角站在0处,需要到达大于n的位置 主角要进入的格子有三种状态: 0. 不能进入 1. 能进入 ...
- 2.精通前端系列技术之JS模块化开发-深入学习seaJs(四)
深入学习seajs 配置信息 alias : 别名配置 paths : 路径配置 vars : 变量配置 map : 映射配置 preload : 预加载项 debug : 调试模式 base : 基 ...
- linux下挂载硬盘,解决阿里云挂载后重启消失的问题
完整的阿里云挂载数据盘方法如下: 1.入手阿里云后查看有几块硬盘:(只显示概况,不显示分区情况) fdisk -l|grep Disk 2.查看硬盘分区 fdisk -l 如果有提示:disk /de ...
- 神奇的Noip模拟试题第一试 合理种植 枚举+技巧
1.合理种植 (plant.pas/.c/.cpp) [问题描述] 大COS在氯铯石料场干了半年,受尽了劳苦,终于决定辞职.他来到表弟小cos的寒树中学,找到方克顺校长,希望寻个活干. 于是他如愿以偿 ...
- 踏着前人的脚印学Hadoop——序列化,Writerable
package org.apache.hadoop.io; import java.io.DataOutput;import java.io.DataInput;import java.io.IOEx ...