我想知道是否有人能帮我解决这个问题,我可以在二维空间处理这个问题。。。但是没有了
我使用文本文件将数据网格存储为表格。每列代表一个轴坐标值,但最后一列是实际数据
此代码生成从文本文件加载的二维数组示例:
import numpy as np
def function_a(a, b, c, d):
return a + b + c + d/100000
w = np.arange(6.0, 9.0, 0.5)
x = np.arange(1, 1000, 200)
y = np.arange(-4.0, -1.5, 0.5)
z = np.arange(1e6, 1e7, 1e6)
file_matrix = np.zeros((w.size*x.size*y.size*z.size, 5))
i = 0
for w_value in w:
for x_value in x:
for y_value in y:
for z_value in z:
file_matrix[i, 0] = w_value
file_matrix[i, 1] = x_value
file_matrix[i, 2] = y_value
file_matrix[i, 3] = z_value
file_matrix[i, 4] = function_a(w_value, x_value, y_value, z_value)
i += 1
print(file_matrix)
正如您在该表中所看到的,每个列坐标都有不同的“步进速度”,第一列的值变化比第二列慢,因此对于每个后续列坐标。最后一个在每行发生变化:
[[ 6.000e+00 1.000e+00 -4.000e+00 1.000e+06 1.300e+01]
[ 6.000e+00 1.000e+00 -4.000e+00 2.000e+06 2.300e+01]
[ 6.000e+00 1.000e+00 -4.000e+00 3.000e+06 3.300e+01]
...
[ 8.500e+00 8.010e+02 -2.000e+00 7.000e+06 8.775e+02]
[ 8.500e+00 8.010e+02 -2.000e+00 8.000e+06 8.875e+02]
[ 8.500e+00 8.010e+02 -2.000e+00 9.000e+06 8.975e+02]]
我想把这个矩阵重塑成一个4维数组(我们称之为file_mdimArray
),考虑w,x,y,z数组的轴增量。以便:
file_mdimArray[a, b, c, d] = function_a(w[a], x[b], y[c], z[d])
谢谢你的建议
正如我在下面的代码中所示,您可以重塑数组的形状,以达到您描述的形状
我还建议您更改计算数组文件\u矩阵的方式。通过使用numpy提供的工具,您可以不使用循环来完成这项工作
相关问题 更多 >
编程相关推荐