2012-02-06 34 views
1

我必须重写一些Python代码,以便它与Python 3兼容。不幸的是,我的一个文件导入了Numpy,但它尚不适用于Python 3。所以我想用普通的Python代码替换Numpy代码。但我无法取代Numpy的重塑功能。 重塑将一个数组作为输入并对其进行重塑(更改行数/列数)。例如:编写与Numpy的整形相同的代码

a = arange(10).reshape(2,5) 

创建窗体

[[0, 1, 2, 3, 4], 
    5, 6, 7, 8, 9] 

我的想法是这样的代码的数组:

list = range(10) 
matrix = [] 
row = [] 
for i in range(2): 
    for j in range 5: 
     row.append(list[j]) 
    matrix.append(row) 
    row = [] 

但嵌套循环不很好看。你知道更好的方法吗?

回答

1

的numpy的常见问题解答说,它不支持Python 3中,但是根据它执行以下操作:

http://onpython3yet.com/packages/requirements?r=numpy%0D%0A

你可能只想检查,看看是否你对numpy的状态的假设是正确的。

+0

谢谢你,我不知道这个伟大的网页。它确实可用! – 2012-02-06 19:27:52

+0

似乎有不止一套常见问题解答。 [这些常见问题](http://www.scipy.org/FAQ#head-288204f886c0a120754d189f434864554a4a970d)正确地说它支持Python 3,而[这些常见问题](http://new.scipy.org/faq.html#python-版本支持)已过期。 – 2012-02-06 21:03:56

1

的非numpy的选项(numpy的是一项艰巨的依赖):

x = range(10) 
mat_2x5 = [x[i*5:(i+1)*5] for i in range(2)] 
+0

谢谢你的替代:) – 2012-02-08 19:46:36

相关问题