【问题标题】:Unpack numpy array objects, from shape (3,2)(2) to shape (3,2,2)解压 numpy 数组对象,从形状 (3,2)(2) 到形状 (3,2,2)
【发布时间】:2022-01-08 19:14:00
【问题描述】:

我有一个形状为 (3,2) 的 numpy 数组,其中每个单元格都是一个形状为 2(对象)的 numpy 数组:

df = pd.DataFrame({'A':[np.array([4,4]),np.array([5,5]),np.array([6,6])], 'B':[np.array([4,5]),np.array([5,6]),np.array([6,7])]})
df.head()

        A       B
0  [4, 4]  [4, 5]
1  [5, 5]  [5, 6]
2  [6, 6]  [6, 7]

a = df.to_numpy()
print(a.shape) #gives (3,2)
print(a[0,0]) #gives array([4,4])
print(a[0,0].shape) #gives (2,)

print(a)
#Gives:
array([[array([4, 4]), array([4, 5])],
       [array([5, 5]), array([5, 6])],
       [array([6, 6]), array([6, 7])]], dtype=object)

如何打开单元格以使a 变成 (3,2,2) 形状?

【问题讨论】:

  • 预期输出是什么?

标签: python arrays numpy


【解决方案1】:

IIUC,你可能想要:

import numpy as np
np.c_[df.values.tolist()]

输出:

array([[[4, 4],
        [4, 5]],

       [[5, 5],
        [5, 6]],

       [[6, 6],
        [6, 7]]])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多