Создание нескольких векторов - PullRequest
1 голос
/ 08 марта 2012

Итак, допустим, у меня есть список чисел, и я хочу создать вектор из всех них в форме (x, 0, 0).Как бы я это сделал?

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

Поэтому, когда я получаю доступ, скажем, hello[2], я получаю (3, 0, 0) вместо просто 3.

Ответы [ 3 ]

1 голос
/ 08 марта 2012

Это должно работать

hello = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_hello = [(n, 0, 0) for n in hello]
1 голос
/ 08 марта 2012

Попробуйте, используя 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])
1 голос
/ 08 марта 2012

Если вы работаете с векторами, лучше всего использовать 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])
...