【发布时间】:2022-01-23 01:46:08
【问题描述】:
假设我有一个像这样的 numpy 数组
array([1, 3, 5, 7, 9, 11])
我想将它“缩放”两倍,使用两个相邻数字的平均值来填补“空白”。结果:
array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11])
有人知道怎么做吗?
【问题讨论】:
假设我有一个像这样的 numpy 数组
array([1, 3, 5, 7, 9, 11])
我想将它“缩放”两倍,使用两个相邻数字的平均值来填补“空白”。结果:
array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11])
有人知道怎么做吗?
【问题讨论】:
这是一个您可以使用的简单函数。
def double_list(arr):
new_arr = []
for i in range(len(arr)):
new_arr.append(arr[i])
if i == 0 or i == len(arr) - 1:
new_arr.append(arr[i])
else:
new_arr.append(int((arr[i] + arr[i + 1]) / 2))
return new_arr
print(double_list(arr))
【讨论】:
使用 numpy arange 函数
arr = np.array([1, 3, 5, 7, 9, 11])
arr2 = np.arange(arr.min(),arr.max() + 1)
print(arr2)
输出:
[ 1 2 3 4 5 6 7 8 9 10 11]
根据您的要求获得输出
arr2 = np.append(np.arange(arr.min(),arr.max() + 1), arr.max())
print(arr2)
输出:
[ 1 2 3 4 5 6 7 8 9 10 11 11]
【讨论】: