我继承了一些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的新手,所以请耐心等待。
答案 0 :(得分:5)
要重现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 ]])
现在这是一个简单的二维数组,可以展平或平整,或重塑:
In [87]: x[0].flatten()
Out[87]: array([ 1.16179327, -0.1721163 ])
flatten
对原x
没有任何作用,因为已经是1d。
我在MATLAB文档中找到了ARCoeff
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)
答案 1 :(得分:3)
<context:annotation-config></context:annotation-config>
<context:component-scan
base-package="controller, dao, model, service, main, configuration">
</context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:default-servlet-handler />
<tx:annotation-driven />
就是出于此目的。
ndarray.flatten
或
>>> import numpy as np
>>> a = np.array([np.array([[ 1.16179327, -0.1721163 ]])], dtype=object)
>>> a.flatten()
array([1.16179327, -0.1721163], dtype=object)
答案 2 :(得分:1)
您是否尝试过内置的.tolist()方法?
>>> RCoeff.tolist()