【发布时间】:2021-09-20 16:46:20
【问题描述】:
我想创建一个以数组作为第一个参数的函数,该函数采用任意大小和形状的 arr 数组,并将其在给定 [a,b] 区间内的所有值覆盖为等于 c。 a、b、c 数字作为参数提供给函数。如下面的输入和输出
arr = np.array([[[5., 2., -5.], [4., 3., 1.]]])
overwrite_interval(arr, -2., 2., 100.) -> ndarray([[[5., 100., -5.], [4., 3., 100.]]])
def overwrite_interval(arr , a , b , c):
for i in arr[:,:]:
arr[a,b] = c
arr = np.array([[[5., 2., -5.], [4., 3., 1.]]])
assert overwrite_interval(arr, -2., 2., 100.) #-> ndarray([[[5., 100., -5.], [4., 3., 100.]]])
【问题讨论】:
-
花更多时间阅读
numpy初学者的介绍。并尝试考虑整个数组操作,而不是逐个元素的迭代。这里的基本问题是,哪些元素属于替换范围?并确定了它们,如何替换它们。 -
非常感谢,我尽量涵盖所有的decoumntion