import numpy as np
x = np.linspace(0,1,3)
y = np.linspace(0,1,5)
z = np.linspace(0,1,3)
X,Y,Z = np.meshgrid(x,y,z)
indices = np.nonzero(X <= Y)
X = X[indices].reshape([3,3,3])
Y = Y[indices].reshape([3,3,3])
Z = Z[indices].reshape([3,3,3])
字符串 一般来说,对于一个n x n x n网格,应该取y = np.linspace(0,1,2*n - 1)。
3条答案
按热度按时间dfty9e191#
以下内容似乎产生了预期的结果。
字符串
一般来说,对于一个n x n x n网格,应该取
y = np.linspace(0,1,2*n - 1)
。23c0lvtd2#
在我看来,这个问题是不明确的。我们需要看到你想要的实际数字。和代码,即使它不是漂亮的'数组'的东西。
但是让x和y,z增加了一个维度,但没有改变任何重要的东西。
字符串
x
是一个简单的3个元素的一维数组。y
是(3,3),x
的每个起始点对应一行。型
这是两个形状为(3,9)的数组。我预计meshgrid会产生一个关于
y
不是1d的错误,但看起来它反而变平了。注意,第一个的所有行都是相同的,第二个的所有列都是相同的,这就是
meshgrid
的本质。本的
本建议(在我的2D版本)
型
这些价值观没有多大意义。
即使没有“indices ='ij”,结果看起来也没有更合理
型
tril
这听起来有点像你想要一个下三角形或上三角形。这是一个有些值被设置为零(或可能
nan
?)型
还是用楠填
型
稀疏网格
meshgrid
可以是一般的sparse
值,在广播的情况下,其行为与2d密集型
你的元组?
从注解中,我推断出您需要7个元组(忽略
z
)型
这就像一个上/下tri,但是您添加了
(0.5, 0.75)
或者这些可以从我的[44]和[45]中收集,跳过[45]中重复的1。
mzsu5hc03#
经过几天的研究,numpy中与“mesh”相关的函数似乎被设计为(仅)创建方形网格。如果需要生成一个奇怪形状的网格,比如我的例子中的三角形,可以首先生成一个方形网格,然后使用索引来“静音”三角形之外的网格,或者简单地编写一个n嵌套循环,其中n是涉及的变量数量。
简单地说,像meshgrid这样的函数不是为了生成正方形以外的形状的网格而设计的。