Numpy数组对象

Numpy数组:是一个多维数组对象,称为ndarray。其由两部分组成:

  (a)实际的数据;

  (b)描述这些数据的元数据;

大部分操作仅针对于元数据,而不改变底层实际的数据

array([[0,1,2,3,4,5,6,7,8,9,10,11],[12,13,14,15,16,17,18,19,20,21,22,23]])

 

1.数组对象属性

  (a)ndarray.ndim:维数、秩、数组轴个数,本例中为2

  (b)ndarray.shape:数组的维度,ndarray.shape(0)=2,ndarray.shape(1)=12;

  (c)ndarray.size:数组的元素个数;

  (d)ndarray.dtype:指定或查看数组中元素类型的对象类型;

  (e)ndarray.itemsize:数组中每个元素的字节大小;

2.常用函数

tile函数:是模板numpy.lib.shape_base中的函数

①函数原型:tile(A,reps),其中A和reps都是array_like的。A的类型众多,几乎所有类型都可以:array, list, tuple, dict, matrix以及基本数据类型int, string, float以及bool类型。reps的类型也很多,可以是tuple,list, dict, array, int,bool。但不可以是float, string, matrix类型。

②函数表示的意思是复制次数,例如:

reps为长度为1的值:
a=([[1,2,3],[4,5,6]]) //python的数组 >>> tile(a,2) array([[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]])
reps为长度为2的元组: a=([[1,2,3],[4,5,6]]) >>> tile(a,[2,3]) array([[1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6], [1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6]])
reps为长度为3的元组: a=([[1,2,3],[4,5,6]]) >>> tile(a,[2,3,4]) array([[[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6], [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6], [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6]], [[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6], [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6], [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6]]])

 

sum函数:数组对象的函数(即numpy的数组,而非python的数组),求对应的和值

二维数组
>>> a=array([[1,2,3],[4,5,6]]) >>> a.sum() 21 >>> a.sum(0) array([5, 7, 9]) >>> a.sum(1) array([ 6, 15])

一维数组
>>> c=array([1,2,3])
>>> c.sum()
6
>>> c.sum(0)
6
>>> c.sum(1)//出错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/numpy/core/_methods.py", line 25, in _sum
    out=out, keepdims=keepdims)
ValueError: 'axis' entry is out of bounds

 

argsort函数:返回数组值从小到大的索引值

 

One dimensional array:一维数组

>>> x = np.array([3, 1, 2])
 >>> np.argsort(x)
 array([1, 2, 0])

 Two-dimensional array:二维数组

>>> x = np.array([[0, 3], [2, 2]])
 >>> x
 array([[0, 3],
 [2, 2]])
>>> np.argsort(x, axis=0) #按列排序
array([[0, 1],
[1, 0]])

>>> np.argsort(x, axis=1) #按行排序
array([[0, 1],
[0, 1]])

 

 相关知识可以参考博文:http://blog.csdn.net/u013731339/article/details/41449177

iteritems函数:返回字典的迭代器

参考博文:http://blog.csdn.net/revilwang/article/details/38686635

 

posted @ 2015-04-11 22:11  zhanghui_dut  阅读(1595)  评论(0)    收藏  举报