Numpy 模块-常用(间隔索引、数学运算符、数学函数、比较运算符、统计函数、随机数生成,位运算)

目录

一、常用函数

1. 间隔索引(花式索引)

2. 数学运算符

3. 比较运算符和相关函数

4. 常用的数学函数

5. 常用的统计函数

6. 随机数生成

7. 位运算操作符和相关函数


上一篇 Numpy 模块简介_一分耕耘一分收获-CSDN博客

在上一篇中简单说了ndarray的一维数组和二维数组,这一篇主要讲二维数组的常用函数

一、常用函数

1. 间隔索引(花式索引)

    一般的索引方式已经在上一篇讲过,其中提过一维数组的间隔索引。现在说说二维数组的间隔索引,又叫花式索引,指的是利用整数数组进行索引。

        花式索引根据索引数组的值作为目标数组的某个轴的下标来取值。对于使用一维整型数组作为索引,如果目标是一维数组,那么就是对应位置的元素,如果目标是二维数组,那么索引的结果就是对应下标的行。

        直接上代码吧

import numpy as np
#构造一个 8 行 4 列的 ndarray,二维数组
x=np.arange(32).reshape((8,4))
print(x)

        运行结果是

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]
 [24 25 26 27]
 [28 29 30 31]]

进行花式索引

print (x[[4,2,1,7]])

 运行结果是

[[16 17 18 19]
 [ 8  9 10 11]
 [ 4  5  6  7]
 [28 29 30 31]]

可以看到得到的结果依然是一个二维数组,其中分布是原来二维数组的第 5、3、2、8 行(索引值从 0 开始计算),这种简单的[[index1,index2,....]]花式索引一定要记牢。

2. 数学运算符

     先说常用的+,-,*,%,**吧,看一遍代码运行就明白了,在以前对 列表 list 或者元组 tuple里面每个数组进行操作时候,你可能用过lambda、map、reduce、filter 等等函数可能,用过[ ] 中括号,当时觉得代码已经很优美简单,但是遇上 Numpy,那些都是浮云。

#数学运算符
print("*"*40)
print(x)
print("*"*40)
print(x+3)
print("*"*40)
print(x*2)
print("*"*40)
print(x%2)
print("*"*40)
print(x**2)

 运行结果是

****************************************
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]
 [24 25 26 27]
 [28 29 30 31]]
****************************************
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]
 [15 16 17 18]
 [19 20 21 22]
 [23 24 25 26]
 [27 28 29 30]
 [31 32 33 34]]
****************************************
[[ 0  2  4  6]
 [ 8 10 12 14]
 [16 18 20 22]
 [24 26 28 30]
 [32 34 36 38]
 [40 42 44 46]
 [48 50 52 54]
 [56 58 60 62]]
****************************************
[[0 1 0 1]
 [0 1 0 1]
 [0 1 0 1]
 [0 1 0 1]
 [0 1 0 1]
 [0 1 0 1]
 [0 1 0 1]
 [0 1 0 1]]
****************************************
[[  0   1   4   9]
 [ 16  25  36  49]
 [ 64  81 100 121]
 [144 169 196 225]
 [256 289 324 361]
 [400 441 484 529]
 [576 625 676 729]
 [784 841 900 961]]

3. 比较运算符和相关函数

符号

函数含义
>np.greater(arr1,arr2)判断arr1的元素是否大于arr2的元素
>=np.greater_equal(arr1,arr2)判断arr1的元素是否大于等于arr2的元素
<np.less(arr1,arr2)判断arr1的元素是否小于arr2的元素
<=np.less_equal(arr1,arr2)判断arr1的元素是否小于等于arr2的元素
==np.equal(arr1,arr2)判断arr1的元素是否等于arr2的元素
!=np.not_equal(arr1,arr2)判断arr1的元素是否不等于arr2的元素

同样上代码

#创建两个 ndarray

a=np.arange(10)
b=np.array(list(range(5,15)))
print(a)
print(b)

#算数比较
print(a < b )
print(a <=b )
print(a >b )
print(a >=b )
print(a != b)
print(a == b)
print(np.less(a,b))
print(np.less_equal(a,b))
print(np.greater(a,b))
print(np.greater_equal(a,b))
print(np.not_equal(a,b))
print(np.equal(a,b))

 运行结果是

[0 1 2 3 4 5 6 7 8 9]
[ 5  6  7  8  9 10 11 12 13 14]
[ True  True  True  True  True  True  True  True  True  True]
[ True  True  True  True  True  True  True  True  True  True]
[False False False False False False False False False False]
[False False False False False False False False False False]
[ True  True  True  True  True  True  True  True  True  True]
[False False False False False False False False False False]
[ True  True  True  True  True  True  True  True  True  True]
[ True  True  True  True  True  True  True  True  True  True]
[False False False False False False False False False False]
[False False False False False False False False False False]
[ True  True  True  True  True  True  True  True  True  True]
[False False False False False False False False False False]

4. 常用的数学函数

        太简单了,不写代码了

函数函数说明
np.round(arr)对各元素四舍五入
np.sqrt(arr)计算各元素的算术平方根
np.square(arr)计算各元素的平方值
np.exp(arr)计算以e为底的指数
np.power(arr, α)计算各元素的指数
np.log2(arr)计算以2为底各元素的对数
np.log10(arr)计算以10为底各元素的对数
np.add(arr1,arr2)

arr1,arr2 各个元素相加,

arr2也可以是某个具体的数值

np.subtract(arr1,arr2)arr1,arr2 各个元素相减,

arr2也可以是某个具体的数值

np.multiply(arr1,arr2) arr1,arr2 各个元素相乘,

arr2也可以是某个具体的数值

np.divide(arr1,arr2)arr1,arr2 各个元素相除,

arr2也可以是某个具体的数值

5. 常用的统计函数

     请注意下面每个函数都有一个参数 axis,即轴,轴是指数据的方向;

        axis=0时,计算数组各列的统计值;

        axis=1时,计算数组各行的统计值

        不指定 axis,即默认时候,是对所有元素进行统计

函数函数说明
np.min(arr,axis)按照轴的方向计算最小值
np.mean(arr,axis)按照轴的方向计算平均值
np.max(arr,axis)按照轴的方向计算最大值
np.median(arr,axis )按照轴的方向计算中位数
np.sum(arr,axis)按照轴的方向计算和
np.std(arr,axis)按照轴的方向计算标准差
np.var(arr,axis)按照轴的方向计算方差

        直接上代码吧

#创建二维数组,5行6列
a=np.arange(30).reshape((5,6))
print(a)

print("-"*40)
print(np.min(a))         # 没有axis参数时候,默认是对所有元素进行统计
print(np.min(a,axis=0))  # axis = 0 ,对列进行统计
print(np.min(a,axis=1))  # axis = 1 ,对行进行统计

print("-"*40)
print(np.max(a))
print(np.max(a,axis=0))
print(np.max(a,axis=1))

print("-"*40)
print(np.mean(a))
print(np.mean(a,axis=0))
print(np.mean(a,axis=1))

print("-"*40)
print(np.sum(a))
print(np.sum(a,axis=0))
print(np.sum(a,axis=1))

运行结果是

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]
 [24 25 26 27 28 29]]
----------------------------------------
0
[0 1 2 3 4 5]
[ 0  6 12 18 24]
----------------------------------------
29
[24 25 26 27 28 29]
[ 5 11 17 23 29]
----------------------------------------
14.5
[12. 13. 14. 15. 16. 17.]
[ 2.5  8.5 14.5 20.5 26.5]
----------------------------------------
435
[60 65 70 75 80 85]
[ 15  51  87 123 159]

6. 随机数生成

     np.random 可以类似于random模块使用,常见的函数如下,需要的同学自己研究,不上代码了。

        # 随机整数 np.random.randint()

        # 随机均匀分布 np.random.randuniform()

        # 随机正态分布 np.random.normal( )

7. 位运算操作符和相关函数

        NumPy "bitwise_" 开头的函数是位运算函数。

        NumPy 位运算包括以下几个函数:

函数描述
&bitwise_and对数组元素执行位与操作
|bitwise_or对数组元素执行位或操作
~invert按位取反
<<left_shift向左移动二进制表示的位
>>right_shift向右移动二进制表示的位

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值