python - 如何按比例将数组调整到一定长度?

标签 python numpy

我有一个长度为 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/

相关文章:

python - 在 sphinx 文档中生成目录的自动模块

python 在已安装的 textstat 中找不到模块

python - Sin(x)^4 的梯度与导数计算时不同

numpy - 不同形状的 NumPy 数组的逐元素乘法

python - 协助矩阵求常数次方

python - mysqlconnector python错误: "Commands out of sync; you can' t run this command now"

python - 如何按大小写降序排列?

带有正则表达式的 Python difflib

python - 识别 df 行之间的公共(public)元素以创建新列

python - 带有 nan 的 numpy pad 数组,取而代之的是奇怪的 float