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'一樣有用的例子。 –