Numpy笔记

numpy几个属性:
ndim:维度
shape:行数和列数
size:元素个数

numpy的创建:array:
关键字:
array:创建数组
dtype:指定数据类型
zeros:创建数据全为0  ---zeros(3,5)---3行5列全为0
ones:创建数据全为1   ---ones(3,5)---3行5列全为1
empty:创建数据接近0
arange:指定范围创建连续“数组”  --arange(10,20,2) # 10-19 的数据,2步长
linspace:创建线段型数据

arange(12):从0到11的数组

reshape:转变维度
arange(12).reshape((3,4))    # reshape :3行4列,0到11

linspace(1,10,20)    # 开始端1,结束端10,且分割成20个数据,生成线段

[ True  True  True False]
基本运算:
+-*/

c=b**2  :b的二次方

Numpy中具有很多的数学函数工具  np.sin,np.cos ....   

print(b<4)  :用于判断这个数组小与4返回一个布尔类型列表

Numpy中的矩阵乘法分为两种, 其一是对应元素相乘  a*b,其二是标准的矩阵乘法运算---->dot(a,b)

sum(), min(), max(),dot

对行或者列进行查找运算,就需要在上述代码中为 axis 进行赋值。 
当axis的值为0的时候,将会以列作为查找单元, 当axis的值为1的时候,将会以行作为查找单元
np.sum(a,axis=1))  ----在行求和



argmin() 和 argmax() 两个函数分别对应着求矩阵中最小元素和最大元素的索引

平均值:np.mean(a)/a.mean()    np.average(a)

累加函数:matlab中的cumsum()累加函数类似,Numpy中也具有cumsum()函数 ----》 后一个数是前一个数加上本位的数

累差运算函数:np.diff(a)

nonzero()函数  ---》函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵
非零元素的行数  非零元素得列数

转置:用于矩阵的运算
print(np.transpose(A))    
print(A.T)

clip()函数
clip(Array,Array_min,Array_max)  --》指定小与min的数都Array_min,大于max都为Array_max
Array指的是将要被执行用的矩阵,
而后面的最小值最大值则用于让函数判断矩阵中元素是否有比最小值小的或者比最大值大的元素,
并将这些指定的元素转换为最小值或者最大值

索引:
A[1][1]/A[1,1]  -》第二行二列

切片操作

flatten是一个展开性质的函数,将多维的矩阵进行展开成1行的数列。而flat是一个迭代器,本身是一个object属性。

A = np.arange(3,15).reshape((3,4))
 
print(A.flatten())   
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])


for item in A.flat:
print(item)
#3
4
5...
 
合并:
np.vstack() ---属于一种上下合并,即对括号中的两个整体进行对应操
np.hstack()   属于左右合并

把一个横向的序列转为矩阵
A = [1,2,3]
A[np.newaxis,:]  ---->A数列在行加维度

当你的合并操作需要针对多个矩阵或序列时,
借助concatenate函数可能会让你使用起来比前述的函数更加方便:
np.concatenate()
np.concatenate((A,B,B,A),axis=0)  axis=1:在纵向合并
 
分割:
纵向分割:  np.split(A, 2, axis=1) 
横向分割:   np.split(A, 2, axis=0)
不等量分割:   np.array_split(A, 2, axis=0) 
其他分割:vsplit,hsplit:

np.vsplit(A, 3) #等于 print(np.split(A, 3, axis=0))
# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
np.hsplit(A, 2) #等于 print(np.split(A, 2, axis=1))


拷贝:
copy() 的赋值方式没有关联性 


其他一些函数:
numpy.random.normal(loc=0.0, scale=1.0, size=None);
loc:float
此概率分布的均值(对应着整个分布的中心centre)
scale:float
此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)
size:int or tuple of ints
输出的shape,默认为None,只输出一个值
np.random.uniform()  从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.
    
    low: 采样下界,float类型,默认值为0;
    high: 采样上界,float类型,默认值为1;
    size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值。

numpy.random.randn(2,4)是从标准正态分布中返回一个2行四列的矩阵

猜你喜欢

转载自blog.csdn.net/scc_722/article/details/80468521