2017-02-21 61 views
2

我对使用numpy做矢量化感到困惑。使用numpy的Python数组

特别是,我有这种形式的矩阵:类型的 <type 'list'>

[[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]

如何使它看起来像下面使用numpy的?

[[ 0.0 0.0 0.0  0.0 ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1  2  3  4 ]] 

是的,我知道我可以用做:

np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

但我有一个很长的矩阵,我不能就这么打出来一样,每个行。当我有一个非常长的矩阵时,我该如何处理这个案例?

+0

np.array([[0.0,0.0,0.0,0.0],[0.02,0.04,0.0325,0.04],[1,2,3,4]]) – Erotemic

+0

您好Erotemic,你能请参阅我的更新? – wrek

+0

你如何获得你不想输入的矩阵?它现在以什么样的形式存在(例如,我有一个数组,一个CSV文件,一个生成器函数)? – Marat

回答

1

假设你开始一个大阵,为什么不把它分割成大小合适的阵列(n):

splitted = [l[i:i + n] for i in range(0, len(array), n)] 

,并从该矩阵:

np.array(splitted) 
+0

你可以使用'np.array(A).reshape'来更快地获得这个表单。 – languitar

1

如果您'你说你有一个存储在Python对象A中的列表列表,你需要做的就是调用np.array(A),它将使用A的元素返回一个numpy数组。否则,您需要指定您的数据现在以何种形式来阐明您希望如何加载数据。

2

这不是一个类型列表矩阵,它是一个包含列表的列表。你可能会认为它为基体,但到Python它仅仅是一个列表

alist = [[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]] 

arr = np.array(alist) 

作品只是一样

arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

这将创建二维数组,形状(3,4)和D型浮动

In [212]: arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

In [213]: arr 
Out[213]: 
array([[ 0. , 0. , 0. , 0. ], 
     [ 0.02 , 0.04 , 0.0325, 0.04 ], 
     [ 1. , 2. , 3. , 4. ]]) 
In [214]: print(arr) 
[[ 0.  0.  0.  0. ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1.  2.  3.  4. ]]