2016-08-30 32 views
0

我有一个从列表转换的数组,当我尝试获得它的形状时,我只有一个数字。像这样:只有一个元素在numpy数组形状

list1=[1,2,3,4,5] 
    a1=numpy.array(list1) 
    print a1.shape 

和我

(5,) 

,然后我试图

list2=[[1,2,3,4,5]] 
    a2=numpy.array(list2) 

    list3=[[1],[2],[3],[4],[5]] 
    a3=numpy.array(list3) 

    print a1+a2 
    print a1+a3 

我得到

[[ 2 4 6 8 10]] 

    [[ 2 3 4 5 6] 
    [ 3 4 5 6 7] 
    [ 4 5 6 7 8] 
    [ 5 6 7 8 9] 
    [ 6 7 8 9 10]] 

似乎A1就像A2。我可以这样想吗?除了形状方法外,如果我把a1当作a2,会不会导致问题?

+0

也许一个1-d阵列的问题是不相关的.. – wwii

+0

如果这是一个2-d列表中,您会得到2个维度,但因为它只是一维列表,所以它只有一个维度。你正在使用什么教程? –

回答

2

尝试:

list1=[[1,2,3,4,5]] 
a=numpy.array(list1) 
print a.shape 

这会给你(1,5),一行,五列。

这:

list1=[[1],[2],[3],[4],[5]] 
a=numpy.array(list1) 
print a.shape 

会得到你(5,1)

+0

谢谢,我试了一下,很有效。 –

1

你可以看看this post,它已经阐明了与numpy形状有关的每一件事情。 (编辑:问题标记为同一个问题的副本)


这个简单的代码还可以帮助你得到一些启示:

import numpy as np 

list1=[1,2,3,4,5] 

a=np.array(list1) 

print a.shape 
# (5,) 

## set be to be the transpose of a 
b = a.T 
print b.shape 
# (5,) 

print np.inner(a,b) 
# 55 
print np.inner(a,a) 
# 55 
+0

谢谢,那篇文章真的很有帮助 –

相关问题