我正在尝试将以下内容转换为间隔对象的 2x2 numpy 数组:
from interval import interval # from the "pyinterval" package
import numpy as np
np.array([
[interval([1.0, 2.0]), interval([1.0, 2.0])],
[interval([1.0, 2.0]), interval([1.0, 2.0])]
])
不幸的是,这个操作将间隔转换为 numpy 数组,并给我一个 2x2x1x2 矩阵。有什么办法可以防止 numpy 数组或矩阵发生这种情况吗?
我能够通过首先填充一个空数组来获得所需的结果,其中 jac 是间隔列表的列表:
arr = np.empty(shape=(2,2), dtype=interval)
for i in range(len(arr)):
for j in range(len(arr)):
arr[i][j] = jac[i][j]
话虽这么说,我怀疑有一种更优雅的方法来实现这一目标。有没有更“Pythonic”的方法来做到这一点?
看起来 numpy 会强制任何东西Sequence
-就像进入一个新的维度,即使np.array
被称为dtype=object
。您可以通过直接创建一个空数组来解决这个问题dtype=object
然后手动填写。
interval_list = get_intervals()
interval_array = np.ndarray(len(interval_list), dtype=object)
for i, interv in enumerate(interval_list):
interval_array[i] = interv
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)