1

所以假设我有一个数字列表,我想从所有这些数字中创建一个向量,格式为 (x, 0, 0)。我该怎么做?

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

所以当我访问时,比如说,hello[2]我得到(3, 0, 0)的不仅仅是3.

4

3 回答 3

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])
于 2012-03-08T02:47:13.470 回答
1

这应该工作

hello = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_hello = [(n, 0, 0) for n in hello]
于 2012-03-08T03:03:34.620 回答
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])
于 2012-03-08T03:14:04.143 回答