在深度学习中经常用到Numpy、scipy以及Matplotlib三大库,Numpy、scipy主要用于数值计算,Matplotlib数据可视化。前面学习了python的基本知识,感觉看一些项目代码还是没有看的很明白,其中这里有几个Numpy的函数,在这里记录下。
from numpy import *
import numpy as np
#包含5个元素的向量
x = array([3, 1, 2])
#数组的shape属性返回一个元组,元组的元素是数组每一个维度上的大小
print x.shape #(3, )
print x.shape[1] #1
#创建多维数组
m = array([arange(2), arange(2)])
print m #[[0, 1], [0,1]]
#显示多维数组
print m.shape #(2, 2)
#选取数组元素 a[m, n]为元素的下标
a = array([[1, 2], [3, 4]])
print a[0, 0] #1
print a[1, 1] #4
#axis=0表示按列相加
c = np.sum([[0, 1, 2],[2, 1, 3]], axis=0)
print c #[2, 2, 5]
print c.shape #(3, )
#axis=1表示按行相加
c = np.sum([[0, 1, 2],[2, 1, 3]], axis=1)
print c #[3, 6]
print c.shape #(2, )
#axis没有给参数表示全部相加相加
c = np.sum([[0, 1, 2],[2, 1, 3]], axis=0)
print c #9
print c.shape #( )
#argsort函数返回是数组从小到大的索引
#一维数组(升序的排列方式)
x = np.array([3, 1, 2])
y = np.argsort(x)
print y #[1, 2, 0]
#一维数组(降序的排列方式)
x = np.array([3, 1, 2])
y = np.argsort(-x)
print y #[0, 2, 1]
#二维数组,按列排序
x = np.array([[3, 1],[2, 3]])
y = np.argsort(x, axis=0)
print y #[[1 0] [0 1]]
#二维数组,按行排序
x = np.array([[3, 1],[2, 3]])
y = np.argsort(x, axis=1)
print y #[[1 0] [0 1]]
#与sort sorted排序的比较
#sort会改变自己本身
a = [5, 6, 2, 2, 1,9]
a.sort()
print a #[1, 2, 2, 5, 6, 9]
#sorted不会改变自己
b = [5, 6, 2, 2, 1,9]
print sorted(b) #[1, 2, 2, 5, 6, 9]
print b #[5, 6, 2, 2, 1, 9]