Python 2.7 放入矩阵中的数组列表

Python 2.7 放入矩阵中的数组列表,python-2.7,matrix,Python 2.7,Matrix,希望这是一个简单的问题。。。。。。 我有两个阵列: >>> X1=[1,2,4,5,7,3,] >>> X2=[34,31,34,32,45,41] 我想把这些数组放到一个叫做X的矩阵中: X=[[1 23] [2 31] [4 34] [5 32] [7 45] [3 41]] 预期输出如下所示: >>>Print X[:0] [1 2 4 5 7 3] [34 31 3

希望这是一个简单的问题。。。。。。 我有两个阵列:

>>> X1=[1,2,4,5,7,3,]   
>>> X2=[34,31,34,32,45,41] 
我想把这些数组放到一个叫做X的矩阵中:

X=[[1 23]   
  [2 31]   
  [4 34]   
  [5 32]   
  [7 45]   
  [3 41]]  
预期输出如下所示:

>>>Print X[:0] 
[1
2
4
5
7
3]

[34
31
34
32
45
41]

我的问题是把两个数组放到一个矩阵中,我以前用的是

X=[[X1[i],X2[i]] for i in range(len(X1))]
但是当我试着打印的时候

>>>print X[:0] 
我得到的错误如下:

TypeError: list indices must be integers, not tuple
我真正想要的是打印
打印X[0]它必须输出[1,23]
打印x[:0]它必须输出矩阵的第一列

需要你的帮助…谢谢

对于第一部分,如果元组适合您的需要,您可以使用
zip

>>> X1=[1,2,4,5,7,3,]   
>>> X2=[34,31,34,32,45,41] 
>>> list(zip(X1, X2))
[(1, 34), (2, 31), (4, 34), (5, 32), (7, 45), (3, 41)]
或:

我无法重现您上次的错误:

>>> X=[[X1[i],X2[i]] for i in range(len(X1))]
>>> print X[:0] 
[]
你可能试着写:

>>> print X[:,0]
使用numpy矩阵时有效:

>>> import numpy as np
>>> x= np.matrix([[a, b] for a, b in zip(X1, X2])
>>> print x
matrix([[ 1, 34],
        [ 2, 31],
        [ 4, 34],
        [ 5, 32],
        [ 7, 45],
        [ 3, 41]])

>>> x[:,0]
matrix([[1],
        [2],
        [4],
        [5],
        [7],
        [3]])
>>> x[:,1]
matrix([[34],
        [31],
        [34],
        [32],
        [45],
        [41]])

您不能以这种方式为列表编制索引。结果矩阵只是一个列表。您可以创建一个数据帧来获得您想要的功能:

import pandas as pd
X1=[1,2,4,5,7,3,]   
X2=[34,31,34,32,45,41] 
matrix = [[x, y] for x, y in zip(X1, X2)]
df = pd.DataFrame(matrix)
print df[0]
print df[1]
印刷品:

0    1
1    2
2    4
3    5
4    7
5    3
Name: 0, dtype: int64
0    34
1    31
2    34
3    32
4    45
5    41
Name: 1, dtype: int64
或者,创建一个numpy.matrix并根据需要对其进行切片:

n_matrix = np.matrix(zip(X1,X2))
print n_matrix[0:, 0]
print n_matrix[0:, 1]
印刷品

[[1]
 [2]
 [4]
 [5]
 [7]
 [3]]
[[34]
 [31]
 [34]
 [32]
 [45]
 [41]]
n_matrix = np.matrix(zip(X1,X2))
print n_matrix[0:, 0]
print n_matrix[0:, 1]
[[1]
 [2]
 [4]
 [5]
 [7]
 [3]]
[[34]
 [31]
 [34]
 [32]
 [45]
 [41]]