1、shape的用法
shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。
shape还可以返回单独的维数:
2、tile
原型为numpy.tile(A,reps)
A为待输入数组,reps为A重复的次数,reps可以决定行列方向上的重复次数:
import numpy
>>> numpy.tile([0,0],3)
array([0, 0, 0, 0, 0, 0])
>>> numpy.tile([0,0],[3,3])
array([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]])
3、sum(axis=1)
sum函数的原型为sum(a, axis=0),在默认状况下axis=0,意思是普通的相加,当axis=1时,为每行向量相加,但是数组要大于一维,否则会报错。
>>> np = numpy
>>> a = np.array([0,2,1])
>>> a.sum()
3
>>> a.sum(axis=1)
numpy.core._internal.AxisError: axis 1 is out of bounds for array of dimension 1
>>> b = np.array([[1,2,3],[4,5,6]])
>>> b.sum(axis=1)
array([ 6, 15])
4、numpy.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]])
#######################################
例1:
>>> x = np.array([3, 1, 2])
>>> np.argsort(x) #按升序排列
array([1, 2, 0])
>>> np.argsort(-x) #按降序排列
array([0, 2, 1])
>>> x[np.argsort(x)] #通过索引值排序后的数组
array([1, 2, 3])
>>> x[np.argsort(-x)]
array([3, 2, 1])
另一种方式实现按降序排序:
>>> a = x[np.argsort(x)]
>>> a
array([1, 2, 3])
>>> a[::-1]
array([3, 2, 1])
3、items()
python3中,没有iteritems,items()会返回将字典一列表的形式返回,不像itertems()一样占用内存,因为返回一个iterator。
a = {'a':1,'b':3} a.items() 返回a = [('a',1),('b',3)]
4、operator.itemgetter()
用于获取数组第几维的数据。
举例说明:
a = [1,2,3]
>>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值(2, 1)
也可用于内建函数sorted:
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
1)、iterable:待排序数组;
2)、cmp:cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如:
students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda student : student[2])
3)、key:key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明,代码如下:
sorted(students, key=lambda student : student[2])
key指定的lambda函数功能是去元素student的第三个域(即:student[2]),因此sorted排序时,会以students所有元素的第三个域来进行排序。
也可以用operator.itemgetter实现,代码如下:
sorted(students, key=operator.itemgetter(2))
sorted函数也可以进行多级排序,例如要根据第二个域和第三个域进行排序,可以这么写:
sorted(students, key=operator.itemgetter(1,2))