numpy库 - 基础操作(第二部分)

Numpy 库第二部分

3、基本数学计算

3.1 加减乘除

3.1.1 加法
import numpy as np
# 数组与数组相加
one = np.ones(4).reshape(2,2)
print('one:', one)
two = np.arange(4).reshape(2,2)
print('two:', two)
print('one+two:', one + two)
# 数组与标量相加
print('one + 1:', one + 1)
one += 4
print('one:', one)
>>> output:
    one: [[1. 1.]
 		  [1. 1.]]
	two: [[0 1]
 		  [2 3]]
	one+two: [[1. 2.]
 			  [3. 4.]]
	one + 1: [[2. 2.]
 			  [2. 2.]]
	one: [[5. 5.]
 		  [5. 5.]]
3.1.2 减法
import numpy as np
# 数组与数组相减
one1 = np.arange(1, 10).reshape(3,3)
print('one1:', one1)
val1 = one1 - np.full((3,3),5)
print('val1:', val1)
# 数组与标量相减
print('one1 - 5:', one1 - 5)
one1 -= 1
print('one1:', one1)
>>> output:
    one1: [[1 2 3]
		   [4 5 6]
 		   [7 8 9]]
	val1: [[-4 -3 -2]
 		   [-1  0  1]
		   [ 2  3  4]]
	one1 - 5: [[-4 -3 -2]
		   	   [-1  0  1]
			   [ 2  3  4]]
	one1: [[0 1 2]
		   [3 4 5]
		   [6 7 8]]
3.1.3 乘法
import numpy as np
# 数组与数组相乘
one2 = np.arange(1, 5).reshape(2,2)
print('one2:', one2)
multi = np.full((2,2),2)
print('multi:', multi)
print('one2 * multi:', one2 * multi)
# 数组与标量相乘
print('one2 * 3:', one2 * 3)
one2 *= 2
print('one2:', one2)
>>> output:
	one2: [[1 2]
 		   [3 4]]
	multi: [[2 2]
		    [2 2]]
	one2 * multi: [[2 4]
				   [6 8]]
	one2 * 3: [[ 3  6]
 			   [ 9 12]]
	one2: [[2 4]
 		   [6 8]]
3.1.4 除法
import numpy as np
# 数组与数组相除
one3 = np.full((2,2),8)
print('one3:', one3)
d1 = np.array([[2,2],[2,2]])
print('one3 / d1:', one3 / d1)
# 数组与标量相除
print('one3 / 2:',one3 / 2)
>>> output:
	one3: [[8 8]
		   [8 8]]
	one3 / d1: [[4. 4.]
			    [4. 4.]]
	one3 / 2: [[4. 4.]
 			   [4. 4.]]

one3 /= 2不被支持,会发生报错。

3.2 其他运算方法

计算方法运算符计算方法运算符
求余%大于等于>=
求幂**小于等于<=
取整//与运算&
等于==或运算|
不等于!=非运算~
大于>左移运算<<
小于<右移运算>>

4、通用函数

4.1 初等函数

函数名表达式函数名表达式
正弦函数np.sin()双曲正切函数np.tanh()
余弦函数np.cos()反双曲正弦函数np.arcsinh()
正切函数np.tan()反双曲余弦函数np.arccosh()
反正弦函数np.arcsin()反双曲正切函数np.arctanh()
反余弦函数np.arccos()弧度转角度函数np.degrees()rad2deg()
反正切函数np.arctan()角度转弧度函数np.radians()np.deg2rad()
双曲正弦函数np.sinh()直角三角形求斜边函数np.hypot()
双曲余弦函数np.cosh()

4.2 随机函数

表达式含义
np.random.rand(d0, d1, ..., dn)产生[0,1)范围内的浮点随机数,其中dn用于指定维度长度
np.random.randn(d0, d1, ..., dn)产生标准正态分布随机数,参数dn用于指定维度长度
np.random.randint(low, high=None, size=None, dtype='l')产生[low, high)范围内的整型随机数,size指定数组大小(含维数控制)
random.normal (loc=0.0, scale=1.0, size=None)产生正态分布随机数。loc为期望,scale为标准差,size为数组大小
np.random.uniform (low=0.0, high=1.0, size=None)[low, high)范围内产生均匀分布的随机数
np.random. poisson(lam=1.0, size=None)产生泊松分布随机数,参数lam为期望间隔,size指定数组大小,可以是多维数组形式。
np.random.permutation(x)生成一个随机的乱序数组,当x设置为标量时,则返回指定范围值[0,n)的乱序数组,当x为可变集合(如数组、列表)时,则对集合里的值进行乱序排列。
np.random.shuffle(x)直接对x数组进行乱序处理
np.random.choice(a, size=None, replace=True, p=None)从指定的样本a中随机抽取size个元素,replace=False时抽取的数不能重复,默认可以重复,p列表值设置样本a的权重,列表元素为小数,加起来总权重为1

4.3 数组集合运算

操作表达式操作表达式
唯一化(去除重复元素)np.unique()两个数组元素的差集np.setdiff1d()
两个数组元素的交集np.intersect1d()两个数组元素的异或(去掉两个数组都有的元素)np.setxor1d()
两个数组元素的并集np.union1d()判断一个数组的元素是否在另一个数组内np.in1d()

4.4 基础统计函数

4.4.1 和统计

np.sum(a, axis=None, dtype=None)a为需要统计的集合对象,dtype指定返回数组的类型。

4.4.2 乘积统计

np.prod(a, axis=None,dtype=None)a为需要统计的集合对象,dtype指定返回数组的类型。

4.4.3 最大数统计

np.max(a, axis=None)a为需要统计的集合对象。等同于amax()函数或数组a.max()方法。

4.4.4 最小数统计

np.min(a, axis=None)a为需要统计的集合对象。等同于amin()函数或数组a.min()方法。

4.4.5 累积和统计

np.cumsum(a, axis=None)a为需要统计的集合对象。等同于数组a.cumsum()方法。

4.4.6 累积乘积统计

np.cumpord(a,axis=None,dtype=None),其中,a为需要统计的集合对象,dtype指定返回数组的类型。

4.4.7 平均数统计
  • 算术平均值统计

np.mean(a, axis=None,dtype=None)a为需要统计的集合对象,dtype指定返回数组的类型。

  • 加权平均值统计

np.average(a, axis=None, weights=None, returned=False)a为需要统计的集合对象,为每个元素提供权重数(可以是一个标量,也可以是一个权重数集合);returned=False,以数组形式返回计算结果(或标量);returned=True,以元组形式返回计算结果。

  • 中值统计

np.median(a, axis=None)a为需要统计的集合对象。

4.4.8 方差和标准差统计
  • 求方差(Variance)

np.var(a, axis=None, dtype=None)a为需要统计的集合对象,dtype指定返回数组的类型。

  • 求标准差

np.std(a, axis=None, dtype=None)a为需要统计的集合对象,dtype指定返回数组的类型。

4.4.9 轴最大最小值差统计

np.ptp(a, axis=None)a为需要统计的集合对象。数组可以用a1.ptp()方法。

4.5 高级统计函数

所谓高级函数,指普通生活中很少使用的,但是在数据高级分析、机器学习、科学研究中所需要使用的一类统计函数。

4.5.1 计算沿指定轴的元素个数的第q个百分位数,求观察值

np.percentile(a, q, axis=None)a为需要统计的集合对象,q为要计算的百分位数或百分位数序列(q的取值区间为[0,100])。返回q%范围内的观察值。

4.5.2 一阶差分,计算沿给定轴的n次迭代离散差。

np.diff(a, n=1, axis=-1)a为需要统计的集合对象,n迭代离散差次数,默认值n=1

4.5.3 数组的连续元素之间的差异

np.ediff1d(ary, to_end=None, to_begin=None)ary为需要统计的集合对象;to_end可选,在返回的差异结束时追加的数字(或集合元素);to_begin,返回差异开头前的数字。

4.5.4 梯度计算

np.gradient(f)f为需要计算的集合对象。

4.5.5 使用复合梯形规则沿给定轴积分

np.trapz(y,axis=-1),其中,y为需要计算的集合对象。

4.6 排序

np.sort(a, axis=-1)a为需要统计的集合对象,axis=0以列为单位进行排序,axis=1以行为单位进行排序。

4.7 将数值替换到数组指定位置

4.7.1 根据条件和输入值更改数组的元素

np.place(arr, mask, vals)arr为数组对象,mask为符合条件的逻辑表达式,vals为需要插入的标量或集合对象。等价于putmask ()函数的用法和功能。

4.7.2 用给定值替换数组的指定元素

np.put(a,ind, v, mode='raise')a为需要替换的数组对象,ind为替换顺序下标位置,v为提供可以替换数值的集合对象。

4.7.3 通过指定axis和花式索引将值放入目标数组.

np.put_along_axis(arr, indices, values, axis)arr为需要替换的数组对象,indices花式索引确定需要替换的下标范围,values为提供的可以替换的数值或集合。上述四个参数为必选项。

4.7.4 填充任何维度的给定数组的主对角线.

np.fill_diagonal(a,val, wrap=False)a至少是2维数组,val为主对角线上需要填写的数值。

4.8 增加和删除行(列)

4.8.1 删除数组行(列)元素

np.delete(arr,obj, axis=None)arr为数组对象,obj为下标切片、下标标量、下标列表、下标整数数组,axis=None默认值,删除后的新数组为一维数组,在axis=1的情况下,保留元素按照行方向形成新数组;在axis=0的情况下,保留元素按照列方向形成新数组。

4.8.2 插入行(列)元素

np.insert(arr,obj, values, axis=None)arr为数组对象,obj为需要插入值处的下标切片、下标标量、下标列表、下标整数数组,values为需要插入的集合对象,axis使用方法同delete()参数。

4.8.3 将指定值附加到数组的末尾

np.append(arr, values, axis=None)arr为数组对象,values为需要插入的集合对象,要求valuesarr必须具有相同维数,否则报错。

4.8.4 修剪一维集合对象的前导或尾随为0的值

np.trim_zeros(filt, trim='fb'),filt为集合对象。

4.9 数值修约等杂项函数

4.9.1 数值修约函数
  • 四舍五入函数

np.around(a, decimals=0)a为需要计算的集合对象,decimals保留的数位(正整数指保留的小数位数,如1为保留一位小数;负整数为保留的整数位数,如-1四舍五入到十位数)。

  • 简单取最接近的整数

np.rint(x)x为需要计算的集合对象。

  • 向 0方向舍入到最接近的整数

np.fix(x)x为需要计算的集合对象。

  • 取浮点数的整数部分,舍去小数

np.floor(x)x为需要计算的集合对象。等价于trunc(x)函数。

  • 返回输入元素的上限整数

np.ceil(x)x为需要计算的集合对象。

4.9.2 条件比较函数

np.where(condition, [x, y]),根据condition条件,选择x数组或y数组里的元素,并以数组形式返回。condition值为True,则迭代返回符合条件的x数组内的元素;condition值为False,则返回符合条件的y数组内的元素。

4.9.3 求绝对值函数

np.abs(x)x为需要计算的集合对象。其全名函数为absolute(x)

END

编辑 | sxlibe

  • 往期目录:

Python系列 01 :数据类型之——数字

Python系列 01 :数据类型之——列表+元组

Python系列 01 :数据类型之——字典

Python系列 01 :数据类型之——集合

Python系列 01 :数据类型之——字符串

Python系列 02 :语法基础之——变量、分支结构

Python系列 02 :语法基础之——循环结构

Python系列 02 :语法基础之——函数

Python系列 03 :文件操作之——基本操作

Python系列 03 :文件操作之——文件属性

Python系列 03 :文件操作之——文件及文件夹操作

Python系列04:xlrd库

Python系列04:xlwt库和openpyxl库

Numpy库 - 基础操作(第一部分)
图片

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值