numpy中ndarray逻辑运算、通用判断函数、np.all()、np.any()、三元运算np.where()、np.logical_and、or、not、统计运算np.median等函数方法使用

一、逻辑运算

直接进行大小判断 

score = np.random.randint(50, 100, (8, 5))  
score

select_score = score[3:,:4]  # 切取score数组中行下标为3至最后一行,列下标从0至第3的元素(左闭右开)
select_score

select_score > 80

----------------------------------------------------------------------
score2 = np.random.randint(50, 100, (3, 5))  # 生成3×5 值在[50,100)间的二维数组
score2

score2 > 90   # 逻辑判断, 若大于90则标记为True,否则为False

score2 == 99   # 判断是否存在99

score2[score2 > 60] = 1    # 布尔赋值, 将满足条件的标记为指定的值-布尔索引
score2

 操作演示如下

二、通用判断函数

  • np.all():所有元素为True,输出为True
  • np.any():任意一个元素为True,输出为True
score3 = np.random.randint(50, 100, (3, 5))  # 生成3×5 值在[50,100)间的二维数组
score3

score3[0,0] = 100   # 修改一个
score3[0,2:4] = 0   # 修改连续多个
score3

np.all(score3[1,0:3] > 60)
np.all(score3[1,0:3] > 90)
np.any(score3[1,0:3] < 70)
np.any(score3[1,0:3] < 80)

 三、三元运算符np.where

  • np.where(condition, x, y):满足条件condition,输出x,不满足输出y
  • 复合逻辑需要结合np.logical_and、np.logical_or和np.logical_not使用,对应与、或、非

代码如下

score4 = np.random.randint(50, 100, (3, 5))  # 生成3×5 值在[50,100)间的二维数组
score4

np.where(score4 > 88, 5, 2)   # 符合指定条件标置为5,否则为2

np.where(np.logical_and(score4 > 70, score4 < 90), 1, 0)     # 符合指定条件标置为1,否则为0

np.where(np.logical_or(score4 <= 70, score4 >= 90), 1, 0)   # 符合指定条件标置为1,否则为0

np.where(np.logical_not(score4 <= 70, score4 >= 90), 1, 0)   # 符合指定条件标置为1,否则为0

  • 其他
    •  &或*:与
    • |:或
score5 = np.random.randint(50, 100, (3, 5))  # 生成3×5 值在[50,100)间的二维数组
score5

np.where((score5 > 70)&(score5 < 90))     # 与,返回符合条件的行、列下标索引

np.where((score5 > 70)*(score5 < 90))     # 与

np.where((score5 < 70)&(score5 > 90))     # 与

np.where((score5 < 70)|(score5 > 90))     # 或,返回符合条件的行、列下标索引

np.where((score5 < 70))

 四、统计运算

  • np.min(a, axis):返回数组的最小值或沿axis轴的最小值
  • np.max(a, axis]):返回数组的最大值或沿axis轴的最大值
  • np.median(a, axis):计算沿指定轴axis的中位数
  • np.mean(a, axis, dtype):计算沿指定轴axis的算术平均值
  • np.std(a, axis, dtype):计算沿指定轴axis的标准偏差
  • np.var(a, axis, dtype):计算沿指定轴axis的方差
  • 统计时,axis 轴的取值不定,Numpy中不同的API轴的值都不一样,在这里,axis=0代表列, axis=1代表行去进行统计
  • np.argmax(a, axis):获取指定每一行或列中最大值索引下标
  • np.argmin(a, axis):获取指定每一行或列中最小值索引下标

代码如下

score6 = np.random.randint(30, 100, (3, 5))  # 生成3×5 值在[50,100)间的二维数组
score6

np.min(score6, axis=0)   # 统计每一列中的最小值,axis=0为列,axis=1为行

np.max(score6, axis=0)   # 统计每一列中的最大值

np.max(score6, axis=1)   # 统计每一行中的最大值,axis=1为行

np.median(score6, axis=0)   # 统计每一列中的中位数

np.mean(score6, axis=0)   # 统计每一列中的算数平均值

np.std(score6, axis=0)   # 统计每一列中的标准偏差

np.var(score6, axis=0)   # 统计每一列中的方差

np.argmax(score6, axis=0)  # 获取每一列中最大值所在的行的索引下标

np.argmin(score6, axis=0)  # 获取每一列中最小值所在的行的索引下标

演示结果如下 

学习导航:http://xqnav.top/

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这个问题可以回答。numpy.ndarraynp.array 是同一种数据类型,因此不需要进行转换。numpy.ndarraynumpy的多维数组对象,而 np.arraynumpy的数组类。可以直接使用 np.array() 函数创建一个 numpy 数组。 ### 回答2: 将numpy.ndarray转化为np.array是多余的,因为numpy.ndarray就是numpy数组的一种表示形式。numpy.ndarray是一个多维数组对象,而np.arraynumpy用于创建数组对象的函数。实际上,当我们使用numpy库进行数组操作时,创建的数组对象就是numpy.ndarray类型的。因此,无需进行任何转化,numpy.ndarray本身就是np.array的一种形式,可以直接使用。 ### 回答3: 将numpy.ndarray转化为np.array是一种效果相同但不同名称的操作。numpy.ndarrayNumPy的多维数组对象,而np.arrayNumPy的数组类。 要将numpy.ndarray转化为np.array很简单,只需使用np.array()函数即可。这个函数可以接收numpy.ndarray作为参数,并返回一个新的数组对象。 示例代码如下: ``` import numpy as np # 创建一个numpy.ndarray对象 ndarray_obj = np.array([[1, 2, 3], [4, 5, 6]]) # 将numpy.ndarray转化为np.array array_obj = np.array(ndarray_obj) print("numpy.ndarray对象:") print(ndarray_obj) print("np.array对象:") print(array_obj) ``` 运行结果如下: ``` numpy.ndarray对象: [[1 2 3] [4 5 6]] np.array对象: [[1 2 3] [4 5 6]] ``` 可以看到,通过np.array()函数numpy.ndarray转化为np.array之后,对象的值和形状都不发生变化。这个转化操作一般用于将其他类型的数组对象(如Python列表)转化为NumPy数组对象,以便于进行NumPy库提供的各种操作和计算。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

learning-striving

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

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

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

打赏作者

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

抵扣说明:

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

余额充值