【发布时间】:2021-02-27 12:10:15
【问题描述】:
我想创建包含笛卡尔坐标系中点坐标的 3 维数组。 我的用户输入如下:
import pandas as pd
import numpy as np
rows = int(input("Please Enter the Total Number of Rows : "))
columns = int(input("Please Enter the Total Number of Columns : "))
levels = int(input("Please Enter the Total Number of Levels : "))
dx = int(input("Please Enter the Pitch in x Direction : "))
dy = int(input("Please Enter the Pitch in y Direction : "))
dz = int(input("Please Enter the Pitch in z Direction : "))
x0 = int(input("Please Enter the Origin Coordinate in x Direction : "))
y0 = int(input("Please Enter the Origin Coordinate in y Direction : "))
z0 = int(input("Please Enter the Origin Coordinate in z Direction : "))
我想从坐标为 [x0,y0,z0] 的点开始,然后根据插入的行数、列数、级别(第三维)和点之间的间距(dx、dy、dz)创建 3D 数组)
我正在考虑循环
Data=np.zeros(('rows','columns','levels'))
for i in range(rows):
for j in range(columns):
for k in range(levels):
但不知道如何编写此代码。任何人都可以帮忙吗?输出应该是 3D 数组的形式。
非常感谢 卢卡斯
【问题讨论】:
-
当你说“点之间的间距”时,你想要多长的距离?
-
dx, dy, dz 是各个方向的间距
-
嗯,你需要 3 维空间中的 3 个坐标(dx, dy, dz)来做一个点。您还想用哪一点来测量距离?再明确一点,您想创建一个
rows*columns*levels矩阵,其中包含每个具有不同原点坐标的点? -
没有洛伦佐。你没看对。让我们形象地想象一下。我想创建 3D 矩形图案。我知道 2D 中的行数和列数以及将其扩展到 3D 的级别数。我在每个方向的坐标之间都有间距/距离/间距,称为 dx,dy,dz ... 因为它通常不应该从坐标 0,0,0 开始,所以我还插入第一个点的坐标作为用户输入( x0,y0,z0)。我想获得计算坐标的 3D 数组。每个点由 (x,y,z) 坐标给出。绝对输出将是由 4 列(点 ID、x 坐标、y 坐标、z 坐标)组成的 csv
标签: python arrays numpy for-loop