Numpy库学习(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014539580/article/details/78194501

import numpy as np
建议使用别名np
ndarray数组
使用 a = np.array([[1,2,3],[4,5,6]]) 生成ndarray数组
ndarray对象的属性
.ndim 秩轴的数量或者维度的数量
.shape ndarray对象的尺度 ,n行m列
.size 数组中对象元素的个数
.dtype 元素的数据类型
.itemsize 每个对象元素的大小

ndarray最好使用同质的数组类型

ndarray 的定义
np.array(list/tuple,dtype =np.float32)
np.arrange(n),返回一个从0到n-1的ndarray
np.ones(shape) // 生成一个全1数组,shape是元组类型
np.zeros(shape) //生成一个全0数组,shape是元组类型
np.full(shape,fill_value) //生成一个全部值为val的数组,每个值都为val
np.eye(n) //创建一个n*n的矩阵,对角线全为1,其余为0

np.ones_like(a) //根据数组a的形状生成一个全1数组
np.zeros_like(a)
np.full_like(a,val)

np.linspace() // 根据起止数据等间距的划分数据
np.linsapce(1,10,4) // [1.,4.,7.,10.]
np.linspace(1,10,4,endpoint = False) //array([ 1. , 3.25, 5.5 , 7.75])
np.concatenate((a,b)) //将两个或者多个数组合并成一个新的数组,所有输入的数组必须有相同的维度

ndarray的维度变换
.reshape(shape) //不改变原数组,返回一个shape形状的新数组
.resize(shape) //功能相同,但是改变原数组
.swapaxes(ax1,ax2) //将数组n个维度中的两个维度进行调换,不改变原数组
a = array([[1, 2, 3],[8, 9, 7]])
a.swapaxes(0,1) //array([[1, 8],[2, 9], [3, 7]])
.flatten() //降维,返回折叠后的一维数组,原数组不变

ndarray数组的类型转换 //b = a.astype(new_type)
.tolist() //将ndarray数组转换为list

数组的索引和切片
一维:
a = np.array([9,8,7,6,5])
a[1] //8
a[0:3] //从0到2,不包括3,切片
a[1:4:2] // 分别表示起始编号,终止编号,步长
多维:
a = np.arange(24).reshape((2,3,4))
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]]])
每一个维度的索引值之间用逗号分隔
a[1,2,3] // 23
a[0,2,1] //9
a[0,2,-1] //11
a[-1,-2,-3] //17
a[:,1,-3] // array([ 5, 17]) 冒号表示不考虑该维度
a[:,0:2,:] //
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[12, 13, 14, 15],
[16, 17, 18, 19]]])
a[:,0:1,:]
array([[[ 0, 1, 2, 3]],
[[12, 13, 14, 15]]])
a[:,0,:]
array([[ 0, 1, 2, 3],
[12, 13, 14, 15]])

ndarray数组的运算
a.mean() //算数平均值
numpy一元函数
np.abs(),np.fabs() //取绝对值,整数浮点数
np.sqrt() //平方根
np.square() // 平方
np.log() np.log10(),np.log2() //分别计算以e,10,2为底的对数
np.ceil() np.floor() //向上取整向下取整 天花板地板
np.rint() //四舍五入
np.modf() //将数组的小数或者整数部分以两个独立数组返回
np.cos() np.cosh()
np.sin() np.sinh()
np.tan() np.tanh()
np.exp(x) //指数函数
np.sign(x) //计算各个元素的符号值 -1 0 1 分别代表负数 0 正数
a*3
array([[[ 0, 3, 6, 9],
[12, 15, 18, 21],
[24, 27, 30, 33]],
[[36, 39, 42, 45],
[48, 51, 54, 57],
[60, 63, 66, 69]]])
numpy的设计理念就是将一组数看成一个数所以可以对ndarray进行加减乘除乘方等操作 + - * / ** %
二元函数操作
np.maximum(a,b) np.fmax(a,b) //取最大值
np.minimum(a,b) mp.fmin(a,b) //取最小值
np.mod(a,b) 取模运算
np.copysign(x,y) //将y中每个元素的符号传给x
<>=<=!=等运算符,返回bool类型数组

猜你喜欢

转载自blog.csdn.net/u014539580/article/details/78194501