python中的Numpy如何正确有效地处理数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (80)

我有:

a = array([[1,2,3],[4,5,6]])

我想把它压平,把两个内部列表连接到一个平面数组条目中。我能做到:

array(list(flatten(a)))

但是,由于列表的强制转换,这似乎效率低下(我希望最终得到一个数组,而不是生成器)。

此外,如何将其推广到这样的数组:

b = array([[[1,2,3],[4,5,6]], [[10,11,12],[13,14,15]]])

其结果应是:

b = array([[1,2,3,4,5,6],
           [10,11,12,13,14,15]])

是否有内置/高效的numpy/cip操作符?

提问于
用户回答回答于

可以使用:

>>> import numpy
>>> b = numpy.array([[[1,2,3],[4,5,6]], [[10,11,12],[13,14,15]]])
>>> b.reshape([2, 6])
array([[ 1,  2,  3,  4,  5,  6],
       [10, 11, 12, 13, 14, 15]])
用户回答回答于
>>>a = np.arange(10000).reshape((100,100))

>>>%timeit a.flatten()
100000 loops, best of 3: 4.02 µs per loop

>>>%timeit a.ravel()
1000000 loops, best of 3: 412 ns per loop

可以试试这个

扫码关注云+社区

领取腾讯云代金券