gpt4 book ai didi

python - 为什么 x[ :, 0] = x[0] 不能用于单个行向量?

转载 作者:行者123 更新时间:2023-11-28 19:32:06 25 4
gpt4 key购买 nike

我是 python 的新手,但我正在尝试理解一些看似基础的东西。

创建一个向量:

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

最佳答案

也许您正在寻找这个:

np.sqrt(x[...,0]**2 + x[...,1]**2 + x[...,2]**2)

可以有任意数量的维度来代替省略号 ...

另见 What does the Python Ellipsis object do? , 和 the docs of NumPy basic slicing

关于python - 为什么 x[ :, 0] = x[0] 不能用于单个行向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com