📜  numpy recarray.ravel()函数| Python(1)

📅  最后修改于: 2023-12-03 15:18:03.052000             🧑  作者: Mango

NumPyRecarray.ravel()函数

NumPyRecarray.ravel()是一个将多维数组转化为一维数组的函数,对于多维的结构,ravel()函数会首先将其展开成一维结构,然后按照C序(按照行遍历,即按照最内层的维度,往外展开)或者F序(按照列遍历,即按照最外层的维度,往内展开)进行展开。

语法

numpy.recarray.ravel(order='C')

参数
  • order: 字符串,可选('C'或者'F'),默认为'C'。C表示展开后的数组为按照行遍历的一维数组;F表示展开后的数组为按照列遍历的一维数组。
返回值

展开后的一维数组。

示例
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()函数,可以方便的将多维数组展开为一维数组,同时可以按照不同的序遍历,提高计算效率。