我剛開始學習Numpy(和Scipy)。我寫了一個程序來計算f(x)函數的繪圖點。 (F(X)不能被明確地,因爲我有數值求解每個點的等式給出。)我把值的2D陣列:Numpy - 查找數據點的最大點和值
[[x1, x2, x3, ...],
[f(x1), f(x2), f(x3), ...]]
我的目標現在是要找到的最大值f(x)函數,並獲取它的位置xm和它的值f(xm)。當然,我可以很容易地做到這一點,但這似乎是NumPy肯定有一個簡單的功能。我發現的唯一的東西是numpy.amax
,但它只返回每個軸的最大值。 (例如numpy.amax([[1,3,2],[5,7,9]],軸= 1)返回[3,9]。)。
我有兩個問題:
- 難道我承擔了存儲數據點好辦法,或者是有在與NumPy/SciPy的特定對象做到這一點?
是否有內置的NumPy/SciPy函數來查找我的數據集的最大值?
這是代碼的有問題的部分:
def get_max(args): ti_0 = sp.pi/2.0 + 1E-10 ti_max = sp.pi - 1E-10 iters = 10000 step = (ti_max - ti_0)/iters ti = ti_0 result = np.empty((2, iters), float_) #the dataset, aim is to find the point where ret_energy is maximal for i in range(0, iters): tret = find_return_time(x, ti) ret_energy = ekin(tret, ti) ret_time = tret/sp.pi result[i, 0] = ret_time result[i, 1] = ret_energy ti += step emax = None #emax = find_maximal_return_energy(result) #-> ??? return emax
出於興趣:爲什麼數據[1,:]比data [1]更受歡迎? – Neinstein
在這種情況下,它沒有區別;這只是我的習慣。我經常將(x,y)數據存儲在轉置格式中,然後我必須寫'data [:,1]'來獲得'y'值。 – user8153