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]
[12
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]]