gpt4 book ai didi

python - 从 pandas Python 和 Numpy 将 3D 数组转换为 2d 数组

转载 作者:行者123 更新时间:2023-12-01 08:18:57 25 4
gpt4 key购买 nike

我使用 pandas 和 numpy 从 csv 创建了数组。这是我将 2D csv 转换为 3D 数组的代码:

>>> import pandas as pd
>>> import numpy as npp
>>> df = pd.read_csv("test.csv")
>>> df_mat = df.values
>>> seq_len = 3
>>> data=[]
>>> for index in range(len(df_mat) - seq_len):
... data.append(df_mat[index: index + seq_len])
...
>>> data = np.array(data)
>>> data.shape
(4, 3, 9)

使用的csv是:

input1,input2,input3,input4,input5,input6,input7,input8,output
1,2,3,4,5,6,7,8,1
2,3,4,5,6,7,8,9,0
3,4,5,6,7,8,9,10,-1
4,5,6,7,8,9,10,11,-1
5,6,7,8,9,10,11,12,1
6,7,8,9,10,11,12,13,0
7,8,9,10,11,12,13,14,1

现在我想将 3D 数组恢复为 2D 数组格式。
请让我知道我该怎么做。没有得到任何线索。

最佳答案

沿着每个 block 对第0行进行切片,直到最后一个 block 并与最后一个 block 堆叠 -

np.vstack((data[np.arange(data.shape[0]-1),0],data[-1]))

给定样本数据的输出 -

In [24]: np.vstack((data[np.arange(data.shape[0]-1),0],data[-1]))
Out[24]:
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 1],
[ 2, 3, 4, 5, 6, 7, 8, 9, 0],
[ 3, 4, 5, 6, 7, 8, 9, 10, -1],
[ 4, 5, 6, 7, 8, 9, 10, 11, -1],
[ 5, 6, 7, 8, 9, 10, 11, 12, 1],
[ 6, 7, 8, 9, 10, 11, 12, 13, 0],
[ 7, 8, 9, 10, 11, 12, 13, 14, 1]], dtype=int64)

或在所有 block 中切片第 0 行并堆叠,最后一个 block 跳过第一行 -

In [28]: np.vstack((data[np.arange(data.shape[0]),0],data[-1,1:]))
Out[28]:
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 1],
[ 2, 3, 4, 5, 6, 7, 8, 9, 0],
[ 3, 4, 5, 6, 7, 8, 9, 10, -1],
[ 4, 5, 6, 7, 8, 9, 10, 11, -1],
[ 5, 6, 7, 8, 9, 10, 11, 12, 1],
[ 6, 7, 8, 9, 10, 11, 12, 13, 0],
[ 7, 8, 9, 10, 11, 12, 13, 14, 1]], dtype=int64)

关于python - 从 pandas Python 和 Numpy 将 3D 数组转换为 2d 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54805743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com