我對python比較陌生,但我想了解一些看起來很基本的東西。爲什麼不能爲單行向量x [:,0] = x [0]?
創建矢量:
x = np.linspace(0,2,3)
Out[38]: array([ 0., 1., 2.])
現在爲什麼不是X [:,0]的值的參數?
IndexError: invalid index
它必須是x [0]。我有一個函數,我正在調用哪個計算:
np.sqrt(x[:,0]**2 + x[:,1]**2 + x[:,2]**2)
爲什麼不能輸入我的意思?它還有許多其他語言,它獨立於數組中的其他行。也許我誤解了一些根本性的東西 - 如果是的話,很抱歉。我想避免把:
if len(x) == 1:
norm = np.sqrt(x[0]**2 + x[1]**2 + x[2]**2)
else:
norm = np.sqrt(x[:,0]**2 + x[:,1]**2 + x[:,2]**2)
無處不在。當然有一種解決方法...謝謝。
編輯:另一種語言工作的這一個例子是Matlab的:
>> b = [1,2,3]
b =
1 2 3
>> b(:,1)
ans =
1
>> b(1)
ans =
1
它不可能是真的,因爲當數組只有一個維度時,您已爲維度1指定索引,併爲維度2指定索引。 Python是顯式的而不是隱式的。用另一種語言提供示例,我們將幫助您編寫對相同隱含假設進行解釋的數組。 – Paul 2013-05-13 19:08:02
請參閱編輯。 – Griff 2013-05-13 19:11:34
你可以寫'x.ndim',而不是'LEN(x)的'。它不會有所作爲,但它是一個清晰可讀的名稱。 – jorgeca 2013-05-13 19:32:53