我对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