Numpy

来源:互联网 发布:阿里云服务器收费标准 编辑:程序博客网 时间:2024/06/09 14:33

ndarray useful attribute

· shape: 代表一个array的形态,是一个向量还是一个矩阵,抑或是一个更复杂的向量组。

· ndim: 代表这个array的维度

· size: 在array中拥有的元素数量

· itemsize: 这个array中每一个元素所需要占的字节数

· nbytes: 这个array的总字节数(=itemsize*size)

· real: 代表一个array中所有元素的实数部分

· imag: 同理,代表一个array中所有元素的虚数部分

· flat: 将这个array整理成一维的,可以索引的一系列的元素组合。它实际上是通过iterator实现的,我们可以通过for x in array.flat来取得到所有的元素

· T: 矩阵转置,同transpose()方法

Other useful method

· tolist(): 将array转化成一个Python中的list对象

· item(*args): 取得某一位置的元素

· dump(file): 将这个对象序列化至文件。同cPickle中的dump作用

· dumps(): 将序列化的结果通过字符串加以输出

一些关于Array的形态操作:

· reshape(): 改变array的形态

· resize(): 也是改变array的形态。不同的是,resize是直接修改这个对象的,而reshape则会生成一个新的对象

· transpose(): 这个就是矩阵的转置操作啦

· swapaxes(): 将n个维度中任意两个维度(坐标轴)进行调换

· flatten(): 复制一个一维的array出来

Array useful method

· max():取得所有元素中的最大值

· min():取得最小值。还有一点值得说,就是max、min这些函数都可以针对某一坐标轴(具体维度)进行运算,例如array.max(axis=0),就在0坐标上求最大值

· sum():求和

· cumsum():求累计和

· prod():求所有元素之积

· cumprod():求累计积

· all():如果所有元素都为真,那么返回真;否则返回假

· any():只要有一个元素为真则返回真

· mean():求平均数


Useful Function : where

from numpy import *a = array([[1,2,3],[4,5,6]])b = array([[1,2,3],[4,5,12]])print(sum(where(b != 0, (a-b) **2, 0)))# print(sum(where(b != 0, (a-b) **2, 0)))  is the sameoutput is 36

min & np.argmin

这里应该是拿min/max(更适合处理可迭代对象,可选的参数是key=func)与np.min/np.max(可适合处理numpy.ndarray对象,可选的参数是axis=0或者1)作比较,只不过np.argmin/np.argmax的用法与np.min/np.max相似,这里就不进行更正了

首先min/max与np.argmin/np.argmax函数的功能不同
前者返回值,后者返回最值所在的索引(下标)
前者跟适合处理list等可迭代对象,而后者自然是numpy里的核心数据结构ndarray(多维数组)


Random API

Reference website:http://blog.csdn.net/whitesilence/article/details/75948101

numpy.random.shuffle(x) and numpy.random.permutation(x),这两个有什么不同,或者说有什么关系?

np.random.permutation返回一个重排后的序列副本,原矩阵不变
而np.random.shuffle无返回值,直接对原序列进行重排,最终改变了原序列

import numpy as npx=range(9)print 'permutation:  ', np.random.permutation(x)print 'x=  ', xy=range(9)print 'shuffle:  ', np.random.shuffle(y)print 'y=  ', y

输出:

permutation:   [5 1 7 3 4 0 2 8 6]x=   [0, 1, 2, 3, 4, 5, 6, 7, 8]shuffle:   Noney=   [2, 4, 3, 8, 1, 7, 5, 0, 6]