一,基本运算

>>> 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 的运算的更多相关文章

  1. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  2. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  3. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  4. Python NumPy学习总结

    一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...

  5. CS231n课程笔记翻译1:Python Numpy教程

    译者注:本文智能单元首发,翻译自斯坦福CS231n课程笔记Python Numpy Tutorial,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成,Flood Sung ...

  6. NumPy算数运算

    NumPy - 算数运算 用于执行算术运算(如add(),subtract(),multiply()和divide())的输入数组必须具有相同的形状或符合数组广播规则. 示例 import numpy ...

  7. Python Numpy基础教程

    Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...

  8. python numpy库np.percentile用法说明

    在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可…… a = range(1,101) #求取a数列第90%分位的数值 np.per ...

  9. Python Numpy shape 基础用法(转自他人的博客,如涉及到侵权,请联系我)

    Python Numpy shape 基础用法 shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入 ...

随机推荐

  1. linux 下echo命令写入文件内容

    http://blog.csdn.net/xukai871105/article/details/35834703 echo "Raspberry" > test.txt

  2. 转: Jsp9个内置对象详解

    1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求, 然后做出响应.它是HttpServletRequest类的实例. 序号方法说明 objectgetA ...

  3. POJ 2240 && ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0

    http://poj.org/problem?id=2240 用log化乘法为加法找正圈 c++ 110ms,g++tle #include <string> #include <m ...

  4. #数据结构-fib

    /////////////////////////////////////////////////////////////////////////////// // // FileName : fic ...

  5. 如何在redhat下安装WineQQ

    使用过redhat的朋友都知道在redhat下要使用聊天工具例如:腾讯QQ只能是用网页QQ,但网页QQ始终用得不尽人意,下面我将给大家介绍一种在redhat下安装WineQQ的方法,让你能在redha ...

  6. Program A - 暴力求解

    Description   Write a program that finds and displays all pairs of 5-digit numbers that between them ...

  7. AIX查看内存卡槽

    1.lscfg -vp|grep Processor 2.lscfg -vp|grep -p Memory

  8. SharePoint 2013 Nintex Workflow 工作流帮助(七)

    博客地址 http://blog.csdn.net/foxdave 工作流动作 11. Check out item(Libraries and lists分组) 与上一个对应,用于签出条目.如果一个 ...

  9. 大嫂的HTML

      <html>   <head>   <style type="text/css">   *{ margin: 0; padding: 0; ...

  10. 《CheckboxDemo.java》

    import java.awt.*; import java.applet.Applet; public class CheckboxDemo extends Applet { String Uni[ ...