python - 如何从文件夹中读取多个 numpy 数组
问题描述
我在一个文件夹中有多个 numpy 数组(.npy)。有没有办法在 Python 中自动读取所有这些?还是我需要手动输入他们的名字?我找不到与从 Python 文件夹中读取多个 numpy 数组相关的信息。
解决方案
您可以使用glob
抓取.npy
与指定*.npy
模式匹配的所有文件。glob.glob
返回一个路径名列表并glob.iglob
返回一个迭代器,而不是同时存储所有路径名(如果您有大量文件,这将很有用)。这是一个小例子:
代码:
import os
import glob
import numpy as np
# Let's create folder
folder = './np_arrays'
try:
os.mkdir(folder)
except OSError:
print('Folder exists!')
# Some dummy arrays
a = np.zeros((1, 5))
b = np.ones((1, 5))
# Save them as .npy to the created folder
np.save(os.path.join(folder, 'a'), a)
np.save(os.path.join(folder, 'b'), b)
# Getting all the numpy arrays .npy files based on matching pattern (*.npy)
file_paths = glob.glob(os.path.join(folder, '*.npy'))
print(file_paths)
# Import arrays from folder and store them as a dict
array_dict = {os.path.basename(f)[0]: np.load(f) for f in file_paths}
print(array_dict)
输出:
['./np_arrays/a.npy', './np_arrays/b.npy']
{'a': array([[0., 0., 0., 0., 0.]]), 'b': array([[1., 1., 1., 1., 1.]])}
推荐阅读
- php - 致命错误:未捕获的错误:升级到 php 7.0 时,函数名称必须是...中的字符串
- mysql - 在 MYSQL 5.7 中实现 mariadb 的 NTILE() 函数
- spring - 无法弄清楚如何使用 Spring Data REST 端点
- sql - SQL 一查询三条件
- cassandra - dsbulk 卸载问题
- c - 循环未终止,程序进入错误的条件语句
- java - 如何使用 JPA(休眠)捕获数据库中动态生成的列的值?
- google-classroom - Google Classroom API:将文件上传到“课程驱动器文件夹”,但确保只有教师可以看到
- python - 如何正确使用 np.subtract 的广播
- paypal - 如何使用 PayPal REST API 获得代表 PayPal 商家处理的权限?