科学 Python 代码的 IndexError
IndexError for scientific Python code
我一直在研究一些代码,这些代码可以进行集成、一些操作,然后进行更多集成。
这是 code(感谢@JRichardSnape!)。
基本上这段代码解决了一个矩阵方程,这就是 mesolve
所做的。它采用哈密顿量(一个关键物理矩阵)、一个初始密度矩阵 rho0
和一个时间列表来评估 rho(t) 在(我们正在解决的问题)和坍缩算子 L1, L2, L3, L4, L5, L6, L7
.然后我提取结果并乘以另外两个数组并绘制它。
我使用 qutip 量子力学模块,因为它们有我需要的求解器:mesolve
。 qutip模块要求将所有的矩阵都转换成一个量子对象,由Qobj(x)完成。
我在折叠运算符定义之后添加了一行定义 rho0=L1 。发生这种情况时,它会给我一个索引错误:
IndexError: index 0 is out of bounds for axis 0 with size 0
我试图找出问题所在。在 f_t 的定义过程中出错。问题是当它试图索引数组时(n.data 是一个 complex128 数字的单个元素数组)。这是怎么回事?
这重现了您的错误:
In [34]: data = np.zeros((0,10))
In [35]: data
Out[35]: array([], shape=(0, 10), dtype=float64)
In [36]: data[0]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-36-88cae4a5bf31> in <module>()
----> 1 data[0]
IndexError: index 0 is out of bounds for axis 0 with size 0
无需深入研究链接代码,很明显,所讨论的数组的第一维长度为 0。 x.shape[0]
为 0。
你可能会得到这样一个数组,用一个空列表索引另一个数组,
In [44]: data=np.ones((3,4))
In [45]: data[[],...]
Out[45]: array([], shape=(0, 4), dtype=float64)
鉴于您提供的信息有限,很难说得更具体。检查所有可疑阵列的形状。
所以 Qobj
记录在 http://qutip.org/docs/2.2.0/apidoc/classes.html
和 mesolve
在 http://qutip.org/docs/2.2.0/apidoc/functions.html#qutip.mesolve.mesolve
和 rho0
预计为 rho0 : qutip.qobj
。
ground
的基础数组是 (7,1)
形状,L1
(问题 rho0
?)的基础数组是 (7,7)
并且全为 0,除了[0,0].
看起来这是
的副产品
我一直在研究一些代码,这些代码可以进行集成、一些操作,然后进行更多集成。
这是 code(感谢@JRichardSnape!)。
基本上这段代码解决了一个矩阵方程,这就是 mesolve
所做的。它采用哈密顿量(一个关键物理矩阵)、一个初始密度矩阵 rho0
和一个时间列表来评估 rho(t) 在(我们正在解决的问题)和坍缩算子 L1, L2, L3, L4, L5, L6, L7
.然后我提取结果并乘以另外两个数组并绘制它。
我使用 qutip 量子力学模块,因为它们有我需要的求解器:mesolve
。 qutip模块要求将所有的矩阵都转换成一个量子对象,由Qobj(x)完成。
我在折叠运算符定义之后添加了一行定义 rho0=L1 。发生这种情况时,它会给我一个索引错误:
IndexError: index 0 is out of bounds for axis 0 with size 0
我试图找出问题所在。在 f_t 的定义过程中出错。问题是当它试图索引数组时(n.data 是一个 complex128 数字的单个元素数组)。这是怎么回事?
这重现了您的错误:
In [34]: data = np.zeros((0,10))
In [35]: data
Out[35]: array([], shape=(0, 10), dtype=float64)
In [36]: data[0]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-36-88cae4a5bf31> in <module>()
----> 1 data[0]
IndexError: index 0 is out of bounds for axis 0 with size 0
无需深入研究链接代码,很明显,所讨论的数组的第一维长度为 0。 x.shape[0]
为 0。
你可能会得到这样一个数组,用一个空列表索引另一个数组,
In [44]: data=np.ones((3,4))
In [45]: data[[],...]
Out[45]: array([], shape=(0, 4), dtype=float64)
鉴于您提供的信息有限,很难说得更具体。检查所有可疑阵列的形状。
所以 Qobj
记录在 http://qutip.org/docs/2.2.0/apidoc/classes.html
和 mesolve
在 http://qutip.org/docs/2.2.0/apidoc/functions.html#qutip.mesolve.mesolve
和 rho0
预计为 rho0 : qutip.qobj
。
ground
的基础数组是 (7,1)
形状,L1
(问题 rho0
?)的基础数组是 (7,7)
并且全为 0,除了[0,0].
看起来这是