我有一个连接到某个数据库的库,作为存储数据的选项之一,我有一个数组。这个库的编码方式使我不能使用n维数组。
假设我想存储一些int32,我会这样做:
np.array([1, 2, 3], dtype=np.int32)
字符串
假设我想存储一些double数组,我可以这样做:
np.array([np.array([1., 2., 3.]), np.array([4., 5.])], dtype=object)
型
因为结果不会产生n维数组,而是一个数组的数组:
array([array([1., 2., 3.]), array([4., 5.])], dtype=object)
型
然而,每当我把所有的数组都做成相同的形状时:
np.array([np.array([1., 2., 3.]), np.array([4., 5., 6.])], dtype=object)
型
结果是:
array([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]], dtype=object)
型
我想:
array([array([1., 2., 3.]), array([4., 5., 6.])], dtype=object)
型
因为这是库会接受的。我理解numpy为什么做这样的优化,但是我想重写它。
1条答案
按热度按时间q43xntqr1#
感谢@hpaulj:
创建一个空的对象数组,然后将元素分配给数组:
字符串
给出:
型
更新:由于一些评论提到了它,我想把它也包括在这里。要一次设置所有元素,你可以这样做:
型