2016-08-30 31 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

謝謝,那篇文章真的很有幫助 –

相關問題