python中,现在有20个excel表,每个excel表有40481行,一列,每一个excel对应着一个三维输入,也就是说每个三维输入对应着一个40481行,一列的excel表格,一共有20个不同的三维输入,怎么把上述对应关系转化为一个(40481,3,20)的数组?
时间: 2024-04-16 12:27:59 浏览: 97
要将上述对应关系转化为一个(40481,3,20)的数组,你可以使用 pandas 和 numpy 库来实现。下面是一个示例代码:
```python
import pandas as pd
import numpy as np
import glob
# 创建一个空的 numpy 数组
combined_array = np.zeros((40481, 3, 20))
# 获取文件夹中所有的文件路径
file_paths = glob.glob("/path/to/folder/*.xlsx") # 将 "/path/to/folder/" 替换为你的文件夹路径
# 循环遍历每个文件路径
for i, file_path in enumerate(file_paths):
# 读取当前文件的数据
df = pd.read_excel(file_path)
# 将当前文件的数据转化为 numpy 数组
array = df.iloc[:, 0].values.reshape((40481, 1))
# 将当前数组的数据添加到合并的数组中
combined_array[:, :, i] = array
# 打印合并后的数组形状
print(combined_array.shape)
```
上述代码假设每个 Excel 文件中只有一列数据,并且数据从第一行开始。如果实际情况不符合这些假设,请在代码中相应地进行修改。
请确保在运行代码之前,将 `/path/to/folder/` 替换为包含你要处理文件的文件夹路径。
上述代码将每个 Excel 文件读取为一个 numpy 数组,并将其放置在合并的数组中的相应位置。最终得到的 `combined_array` 是一个(40481,3,20)的数组,其中每个维度对应着 40481 行,3 列和 20 个不同的三维输入。你可以根据需要对 `combined_array` 进行进一步的处理和分析。
阅读全文