2012-03-08 79 views
1

因此,讓我們說我有一個數字列表,我想創建一個向量中的所有形式(x,0,0)。我將如何做到這一點?創建多個向量

hello = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

所以,當我訪問,比方說,hello[2]我得到(3, 0, 0)而不是僅僅3

+0

您是否確實希望能夠使用該語法? – prelic 2012-03-08 02:35:47

+0

例如,我希望能夠將hello [2](它應該是一個向量)乘以另一個向量。 – 2012-03-08 02:37:27

+0

如果你想繁殖矢量,你應該使用numpy,如果你可以 – 2012-03-08 02:41:16

回答

1

試試這個,使用numpy - 「Python基礎科學計算的基礎包」:

import numpy as np 
hello = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 
hello = [np.array([n, 0, 0]) for n in hello] 

以上將產生您期望的結果:

>>> hello[2] 
array([3, 0, 0]) 

>>> hello[2] * 3 
array([9, 0, 0]) 
+0

太棒了,謝謝! – 2012-03-08 03:55:40

+0

只是一個評論:你的例子其實並沒有使用任何numpy的功能,所以只需要用純Python就可以完成:hello = [1,2,3,4,5];你好= [[n,0,0]爲你好]。之後只有乘法才需要使用numpy。 – 2012-04-18 23:00:13

1

如果您正在使用矢量工作時,最好使用numpy的,因爲它有大量的矢量運算的支持,Python不會

>>> import numpy as np 
>>> hello = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 
>>> hello = (hello*np.array([(1,0,0)]*10).transpose()).transpose() 
>>> hello[2] 
array([3, 0, 0]) 
>>> hello[2]*3 
array([9, 0, 0]) 
+0

太棒了!謝謝! – 2012-03-08 03:55:59

1

這應該工作

hello = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
new_hello = [(n, 0, 0) for n in hello]