拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 将Dataframe转换为(第一个面板)3D阵列

将Dataframe转换为(第一个面板)3D阵列

白鹭 - 2022-03-16 2023 0 0

我有以下名为的资料框df1

一个
0 5 10
1 15 20
2 25 30

现在,假设我还有以下空白 3D 阵列(目前仅作为占位符创建):

array1 = np.zeros((10,3,2))

随着df1在具有相同数量的行和列的,我怎么能代替一号“面板”(十“板”)array1df1

uj5u.com热心网友回复:

试试这个:

array1[0] = df1

输出:

>>> array1
array([[[ 5., 10.],
        [15., 20.],
        [25., 30.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

        ...

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]]])

uj5u.com热心网友回复:

您可以直接将 DataFrame 分配给第一个“面板”:

array1[0] = df

print(array1)
# Output:
[[[ 5. 10.]
  [15. 20.]
  [25. 30.]]

 [[ 0.  0.]
  [ 0.  0.]
  [ 0.  0.]]

 [[ 0.  0.]
  [ 0.  0.]
  [ 0.  0.]]
# ...followed by 7 more identical 3x2 zero matrices

出于习惯,我首先尝试了array1[0, :, :] = df.to_numpy(),据我所知,它给出了相同的结果,但其意图更明确。

uj5u.com热心网友回复:

你可以直接分配像richardec提到的

array1[0] = df1

你也可以试试这个来了解内部发生了什么

array=np.array(df)
array1[0]=array

两种情况下的输出相同

array([[[ 5., 10.],
        [15., 20.],
        [25., 30.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.],
        [ 0.,  0.]]])
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *