2016-10-25 77 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))