编写像Numpy重塑一样的代码

时间:2012-02-06 18:41:09

标签: multidimensional-array numpy python-3.x

我必须重写一些Python代码,以便它与Python 3兼容。不幸的是我的一个文件导入了Numpy,但是它还没有用于Python 3。所以我试图用普通的Python代码替换Numpy-Code。但我无法取代Numpy的重塑功能。 Reshape将数组作为输入并重新整形(更改行数/列数)。例如:

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 = []

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

2 个答案:

答案 0 :(得分:1)

numpy FAQs表示它不支持python 3,但根据以下内容确实如此:

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

您可能只想检查一下您对numpy状态的假设是否正确。

答案 1 :(得分:1)

对于非numpy选项(numpy可能是一个令人生畏的依赖):

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