投入到人工智障的坑中,首先就是要学numpy啊?最近在看dalao的神经网络的代码,很崩溃啊?开个博客记录一下学习成果,要不然组会的时候都没东西说啊?
官网的网址:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
学习的官方网站:http://www.numpy.org/
numpy的基本方法与介绍留坑,先做一下我遇到的接口的笔记
- numpy.array()
用于创建一个新的数组
栗子1
import numpy as np
a=np.array(range(0,5))
print a
>>>
[0 1 2 3 4]
栗子2
import numpy as np
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
a=np.array(a)
print a
>>>
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
- numpy.eye()
生成一个矩形的矩阵
栗子
import numpy as np
b=np.eye(3,k=1)
print b
>>>
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
- numpy.max()/numpy.min()
查询数组中的最大值/最小值
栗子1
import numpy as np
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
a=np.array(a)
print "max",a.max(),"min",a.min()
>>>
max 12 min 1
栗子2
import numpy as np
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
a=np.array(a)
#每一行取出最大/小的那一个数(axis=1),每一列取出最大/小的数(axis=0),axis实质上是表示第几维度
print "max",a.max(axis=0),"min",a.min(axis=1)
>>>
max [ 9 10 11 12] min [1 5 9]
- numpy.argmax()/numpy.argmin()
功能和max/min函数类似,返回的是下标
栗子
import numpy as np
a = np.array([[1, 5, 5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]])
print np.argmin(a, axis=0)
print np.argmax(a, axis=0)
>>>
[0 0 1 2]
[1 2 2 1]
- numpy.ndarray.ndim
返回数组的维度
栗子
import numpy as np
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
a=np.array(a)
print a.ndim
>>>
2
- numpy.mean()
返回数组的平均值
栗子
import numpy as np
a = np.array([[1, 5, 5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]])
print np.mean(a)
>>>
4.83333333333
- numpy.clip()
这个方法可以给定一个区间,在去见之外的数字将被剪除到区间的边缘,例如给定一个区间[0,1],则小于0的将变成0,大于1则变成1
栗子
import numpy as np
a = np.array([[1, 5, 5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]])
print np.clip(a,3,4)
>>>
[[3 4 4 3]
[4 4 3 4]
[3 4 4 3]]
- numpy.squeeze()
这个方法可以压缩数组的维度,将删除维度上只有一个元素的维度
栗子
import numpy as np
image = np.array([[[ 0.67826139, 0.29380381],
[ 0.90714982, 0.52835647],
[ 0.4215251 , 0.45017551]]])
print np.squeeze(image)
x = np.array([[[0], [1], [2]]])
print np.squeeze(x)
>>>
[[ 0.67826139 0.29380381]
[ 0.90714982 0.52835647]
[ 0.4215251 0.45017551]]
[0 1 2]
- numpy.reshape()
可以改变数组的形态,某个维度填写-1表示自动计算
栗子
import numpy as np
a=np.arange(6)
print a.reshape((3,-1))
print a.reshape((3,2))
>>>
[[0 1]
[2 3]
[4 5]]
[[0 1]
[2 3]
[4 5]]
- numpy.where()
这里x,y是可选参数,condition是条件,这三个输入参数都是array_like的形式。而且三者的维度相同当conditon的某个位置的为true时,输出x的对应位置的元素,否则选择y对应位置的元素。如果只有参数condition,则函数返回为true的元素的坐标位置信息。
- numpy.vstack()
将两个数组按照列合并,要求维度一致。
栗子
>>> a = np.array([1, 2, 3])
>>> b = np.array([2, 3, 4])
>>> np.vstack((a,b))
array([[1, 2, 3],
[2, 3, 4]])
>>>
>>> a = np.array([[1], [2], [3]])
>>> b = np.array([[2], [3], [4]])
>>> np.vstack((a,b))
array([[1],
[2],
[3],
[2],
[3],
[4]])
元素级数组元素
一元ufunc
函数 | 说明 |
---|---|
abs、fabs | 计算绝对值,fabs不能用于复数 |
aqrt | 平方根 |
zebra stripes | are neat |
square | 平方 |
exp | 计算e^x |
log、log10、log2、log1p | ln、底数10、底数2、log(x+1) |
sign | 1(正数),0(0)、-1(负数) |
ceil | 大于等于该值的最大整数 |
floor | 小于等于该值的最大整数 |
rint | 四舍五入,但是dtype保留不变 |
modf | 小数部分和整数部分分开 |
isnan | “哪些值不是一个数字”的布尔型数组 |
isfinite、isinf | “哪些值是无穷”布尔型 |
cos、cosh、sin、sinh、tan、tanh | 三角 |
arcos、arcosh、arsin、arsinh、artan、artanh | 反三角 |
logical_not | 相当于:-a |
二元ufunc
函数 | 说明 |
---|---|
add | np.add(x,y) |
subtract | 减 |
multiply | 乘 |
divide、floor_divide | 除法、丢弃余数 |
power np.power(a,b) | 计算a^b |
maximum、fmax | |
minmun、fmin | |
mod | 余数 |
copysign | 第二组元素中的符号复制给第一组元素 |
greater、greater_equal、less、less_equal、equal、not_equal >、>=、<、<=、==、!= | 返回布尔型数组 |
logical_and、logical_or、logical_xor | 逻辑运算 |