Python 来自 csv 文件的矩阵的线性插值

Python linear interpolation of a matrix from csv file

我对 python 很陌生,自从去年开始我的本科生以来我一直在使用它。

背景: 我有一个带有 x、y、z 矩阵的 csv 文件,其中 x 是距离,y 是高度,z 是参数。
基本上是参数随高度和距离的变化,其中 x(距离)在列向下,y(高度)在行中向右。

问题:
x 和 y 的间隔定义了高度和距离的变化,因此与 z 相关。

Objective:
Lnearly 将 x 和 y 以及 z 内插到不同的区间。

当前间隔示例:
x: min = 0, max = 99.22, interval = 0.041
y: min = 0, max = 83.72, interval = 0.104

期望的结果:
x: 最小 = 0, 最大 = 99, 间隔 = 0.02
y: min = 0, max = 84, interval = 0.10

任何人都可以帮忙解决这个问题吗?我确定这是一个非常简单的问题,但我仍然是一个不聪明的学徒。

非常感谢

python 已经有一个名为 numpy 的库,它可以帮助您处理线性代数并且有很多好东西。

您可以从这里开始学习: https://numpy.org/devdocs/user/quickstart.html

要读取 csv 文件,您可以使用另一个名为 pandas.

的著名库

你可以看到link:https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html

例如,您读取 csv 的代码如下所示:

import pandas as pd
import numpy as np

df = pd.read_csv('your_file')

x = df['x'].tonumpy()
y = df['y'].tonumpy()
z = df['z'].tonumpy()

你的 x、y 和 z 将被视为 numpy 数组。

您可以使用 numpy 函数 linspace 创建一个包含 spaced 个值的数组,像那样:

foo = np.linspace(0, 99, 0.02)

numpy 自动构建数组 foo 值从 0 到 99 0.02 space.