为了账号安全,请及时绑定邮箱和手机立即绑定

如何专门使用 NumPy 数组运算和库函数来解决数组运算而没有任何循环?

如何专门使用 NumPy 数组运算和库函数来解决数组运算而没有任何循环?

叮当猫咪 2022-05-24 16:51:55
一个函数,它接受一个 NumPy 数组(任何形状和大小)和两个裁剪值,调用 range_min 和 range_max。输入中任何大于 range_max 的值都应该被裁剪为等于 range_max,任何小于 range_min 的值都应该被裁剪为等于 range_min。下一个单元格包含函数签名和 Python 文档代码,可帮助您入门。我已经为这个问题实现了不同的代码,但不知道如何在没有循环的情况下做到这一点。import numpy as npdef clip_array_range(list_values):    for (i, item) in enumerate(list_values):        if item < -10:            list_values[i]= -10        elif item > 10:            list_values[i]= 10    return list_values   print(clip_array_range([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15]))# expected result: [ -3   2   3   5  10 -10  -8   2  10  10  10]print(clip_array_range([100, -100,50, -50]))new = np.reshape(clip_array_range, (-1))# I have tried change 1D array into 2D as a output but it's not workingprint(new)# expected result:#[[ 10 -10]# [ 10 -10]]此代码没有错误,但试图理解不同类型的逻辑以在没有循环的情况下执行此操作
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

def clip_array_range(list_values, min_value=-10, max_value=10):
    return np.maximum(min_value, np.minimum(list_values, max_value))


查看完整回答
反对 回复 2022-05-24
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

np.where(a < -10, -10, np.where(a > 10, 10, a))



查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信