我有一个长度为 n 的数组,我想将它的大小调整到一定长度以保持比例。
我想要这样的功能:
def rezise_my_array(array, new_lentgh)
例如,输入将是一个长度为 9 的数组:
l = [1,2,3,4,5,6,7,8,9]
如果我将它的长度调整为 5,输出将是:
[1,3,5,7,9]
反之亦然。
我需要它来在 pyspark 上创建线性回归模型,因为所有特征必须具有相同的长度。
最佳答案
你可以这样做:
import numpy as np
def resize_proportional(arr, n):
return np.interp(np.linspace(0, 1, n), np.linspace(0, 1, len(arr)), arr)
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(resize_proportional(arr, 5))
# [1. 3. 5. 7. 9.]
这里的结果是一个浮点值,但如果需要,您可以四舍五入或转换为整数。
关于python - 如何按比例将数组调整到一定长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56217750/