Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将numpy recarray的子集转换为连续数组?_Python_Arrays_Python 2.7_Numpy_Recarray - Fatal编程技术网

Python 如何将numpy recarray的子集转换为连续数组?

Python 如何将numpy recarray的子集转换为连续数组?,python,arrays,python-2.7,numpy,recarray,Python,Arrays,Python 2.7,Numpy,Recarray,我有一个recarray,它来自于读取csv文件。我感兴趣的是将列的子集转换为连续浮点数组。我希望避免将它们转换为列表或逐个堆叠。 我尝试了这些建议,但是我得到了 ValueError:新类型与数组不兼容 这是我的密码: a = np.recfromcsv(r"myfile.csv") #a has many columns of type int, float or string. I want to extract those called coeff* coeffs_columns = [

我有一个
recarray
,它来自于读取csv文件。我感兴趣的是将列的子集转换为连续浮点数组。我希望避免将它们转换为列表或逐个堆叠。 我尝试了这些建议,但是我得到了

ValueError:新类型与数组不兼容

这是我的密码:

a = np.recfromcsv(r"myfile.csv")
#a has many columns of type int, float or string. I want to extract those called coeff*
coeffs_columns = [n for n in a.dtype.names if n.startswith('coeff')] 
coeffs_recarray = a[coeffs_columns]
newtype=[(n,'<f8') for n in coeffs_columns]
b = coeffs_recarray.astype(newtype)
#b is:
#array((0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0),  dtype=[('coefficients00', '<f8'), ('coefficients1', '<f8'), ('coefficients2', '<f8'), ('coefficients3', '<f8'), ('coefficients4', '<f8'), ('coefficients5', '<f8'), ('coefficients6', '<f8'), ('coefficients7', '<f8'), ('coefficients8', '<f8'), ('coefficients9', '<f8'), ('coefficients100', '<f8'), ('coefficients11', '<f8'), ('coefficients12', '<f8'), ('coefficients13', '<f8'), ('coefficients14', '<f8')])
coeffs = b.view('<f8')
转换是有效的

Numpy提供了

此函数返回其输入数组的内存中的连续数组(C顺序)。这在处理数组上的非连续视图时特别有用


如果需要Fortran顺序,请使用。

您尝试过感兴趣的数组吗?
a[coeffs\u columns].view('f')
有效吗?@hpaulj不,它给出了相同的结果result@Bort,谢谢,问题解决了!如果你把它转换成一个答案,我会接受它。另一个“有趣的”事情是,coefs_recarray.flags['C_contracting']是真的,但它只在我显式使用np.ascontguousarray时有效
x = np.array([(1.0, 2,7.0), (3.0, 4, 9.9)], 
                 dtype=[('x', '<f8'), ('y', '<f8'), ('z', '<f8')])