我继承了一些python代码,它有一个ndarray,看起来像:
>>> ARCoeff Out[6]: array([array([[ 1.16179327, -0.1721163 ]])], dtype=object) >>> ARCoeff.dtype Out[7]: dtype('O') >>> ARCoeff.shape Out[8]: (1,) >>> type( ARCoeff ) Out[2]: numpy.ndarray
如何将数组提取出类似的内容
[ 1.16179327, -0.1721163 ]
编辑:
根据提供的建议,这是我得到的:
>>> z = ARCoeff.flatten().tolist() >>> z[0] Out[19]: array([[ 1.16179327, -0.1721163 ]]) >>> z1 = z[0] >>> type(z1) Out[21]: numpy.ndarray
所以,我回到了一个ndarray.
EDIT2:
>>> np.version.version Out[31]: '1.8.0'
EDIT3:
>>> z = ARCoeff.flatten().flatten().tolist() >>> type(z) Out[38]: list >>> z1 = z[0] >>> type(z1) Out[40]: numpy.ndarray
我可以知道为什么我的问题被否决了吗?我是Python的新手,所以请耐心等待.
要重现OP的显示,我必须使用:
In [83]: x=np.zeros((1,),dtype=object) In [84]: x[0]=np.array([[ 1.16179327, -0.1721163 ]]) In [85]: x Out[85]: array([array([[ 1.16179327, -0.1721163 ]])], dtype=object)
这跟不一样
In [75]: a = np.array([np.array([[ 1.16179327, -0.1721163 ]])], dtype=object) In [76]: a Out[76]: array([[[1.16179327, -0.1721163]]], dtype=object) In [78]: a.shape Out[78]: (1, 1, 2)
np.array
尝试将其输入转换为高维数组,并删除大多数嵌套数组的证据.
从名称来看,我猜这个数组来自一个名称相似的库ARC
- 我相信这是一个映射库.
无论如何,我们可以通过索引来拉出内部数组:
In [86]: x[0] Out[86]: array([[ 1.16179327, -0.1721163 ]])
这是一个简单的2d数组,可以展平或平整,或重塑:
In [87]: x[0].flatten() Out[87]: array([ 1.16179327, -0.1721163 ])
flatten
对原版没有任何意义,x
因为那已经是1d了.
我ARCoeff
在MATLAB文档中找到了
http://www.mathworks.com/help/econ/modify-regarima-model-properties.html
对象数组中的2d数组是scipy
加载MATLAB文件的特征.
在Octave我能做到
octave:11> ARCoeff={[1,2,3]}; octave:12> save -7 test.mat ARCoeff
并在IPython中加载文件 scipy.io.loadmat
In [99]: from scipy.io import loadmat In [100]: M=loadmat('test.mat') In [101]: M['ARCoeff'] Out[101]: array([[array([[ 1., 2., 3.]])]], dtype=object)