0
我尝试创建一个具有n维的meshgrid。 是否有更好的方法来调用与n列向量相比meshgrid比我使用的if子句?具有numpy的meshgrid的变维数
编辑:目标是将其用于用户定义的n(2-100),而不写入100个子句。
在如果条款降低了电网的第二线,使得列(n)<列(n + 1)
实施例:
import numpy as np
dimension = 2
range = np.arange(0.2,2.4,0.1)
if dimension == 2:
grid = np.array(np.meshgrid(range,range)).T.reshape(-1,dimension)
grid = np.array(grid[[i for i in range(grid.shape[0]) if grid[i,0]<grid[i,1]]])
elif dimension == 3:
grid = np.array(np.meshgrid(range,range,range)).T.reshape(-1,dimension)
grid = np.array(grid[[i for i in range(grid.shape[0]) if grid[i,0]<grid[i,1]]])
grid = np.array(grid[[i for i in range(grid.shape[0]) if grid[i,1]<grid[i,2]]])
编辑:将溶液下面贴:
dimension = 2
r = np.arange(0.2,2.4,0.1)
grid=np.array(np.meshgrid(*[r]*n)).T.reshape(-1,n)
for i in range(0,n-1):
grid = np.array([g for g in grid if g[i]<g[i+1]])
你是否只是''meshgrid(范围,范围)'v's meshgrid(范围,范围,范围)'?我没有看到你的代码的其他部分。 – hpaulj
[numpy中是否有多维版本的arange/linspace?](http://stackoverflow.com/questions/32208359/is-there-a-multi-dimensional-version-of-arange-linspace -in-numpy) – farenorth
覆盖原生python例程通常是一个糟糕的主意,特别是像'range'一样有用的例子。 –