2016-10-25 71 views
0

以下代碼包含PostGIS的查詢,並獲得「產品」,其包括整數和浮點數,產品的商店整數和在numpy的陣列以矩陣形式

import numpy 

k = 8 
for i in cor_list: 
    for l in cor_list: 
     cur.execute(query, (i, l, False, False)) 
     element = cur.fetchall() 
     product = sum([a[-1] for a in element[:-1]]) 
     print product 
     ss = numpy.array(product, ndmin = 2) 
kk = ss.reshape((k,k)) 

部分看起來像:

0 
6460.51962839 
16386.3142965 
18349.9662043 
13071.5492165 
8349.95786602 
3977.69337529 
10471.7888158 
6460.51962839 
0 
9925.79466809 
11889.4465759 

,我想安排這些產品是一個8倍8的numpy陣列,它可能看起來像,

enter image description here

但我跑上述代碼中,我得到這個錯誤:

ValueError: total size of new array must be unchanged 

如何存儲整數和浮點由for循環中的矩陣形式numpy的陣列產生?

+0

@AngusWilliams(1L,1L) – Heinz

+0

產品是整數或浮點數,當我跑'打印product.shape',錯誤顯示:'AttributeError:'int'對象沒有'shape'屬性。 – Heinz

+2

'ss'只是這些'產品'值中的一個。您的循環中沒有收集「產品」值。 – hpaulj

回答

2

我認爲你可以做這樣的事情解決您的代碼:

import numpy 

product = [] 
k = 8 
for i in cor_list: 
    for l in cor_list: 
     cur.execute(query, (i, l, False, False)) 
     element = cur.fetchall() 
     product.append(sum([a[-1] for a in element[:-1]])) 
kk = numpy.array(product).reshape((k,k))