📅  最后修改于: 2023-12-03 15:18:03.052000             🧑  作者: Mango
NumPyRecarray.ravel()是一个将多维数组转化为一维数组的函数,对于多维的结构,ravel()函数会首先将其展开成一维结构,然后按照C序(按照行遍历,即按照最内层的维度,往外展开)或者F序(按照列遍历,即按照最外层的维度,往内展开)进行展开。
numpy.recarray.ravel(order='C')
展开后的一维数组。
import numpy as np
a = np.rec.array([(1,2),(3,4)],dtype=[('foo', 'i4'),('bar', 'i4')])
print("原数组:\n",a)
print("按照行遍历的展开数组:\n",a.ravel())
print("按照列遍历的展开数组:\n",a.ravel(order='F'))
输出结果:
原数组:
[ (1, 2) (3, 4)]
按照行遍历的展开数组:
[1 2 3 4]
按照列遍历的展开数组:
[1 3 2 4]
以上示例中,展示了如何使用NumPyRecarray.ravel()进行多维数组的转化。原数组a为一个由两个二维数组组成的recarray结构,它的具体内容为:
[ (1, 2) (3, 4)]
使用a.ravel()函数时,默认按照行遍历展开,所以展开后的数组为[1 2 3 4];而使用a.ravel(order='F')时,则按照列遍历展开,所以展开后的数组为[1 3 2 4]。
通过NumPyRecarray.ravel()函数,可以方便的将多维数组展开为一维数组,同时可以按照不同的序遍历,提高计算效率。