【发布时间】:2021-08-14 03:39:00
【问题描述】:
我有以下代码:
for filename in os.listdir('/home/ripperflo/Downloads/nightlight_geotiffs'):
if filename.endswith('.tif'): # take TIFF-files only
with rasterio.open(os.path.join('/home/ripperflo/Downloads/nightlight_geotiffs', filename)) as f: # open GeoTiff and store in f
img = f.read() # open GeoTiff as 3D numpy array
matrix = img[0] # 3D array to 2D array because nighlight images has only one band
z_norm = stats.zscore(matrix) # normalize 2D array
# save to npy file
np.save('/home/ripperflo/Downloads/nightlight_z-array/', filename, z_norm)
代码运行至今。我唯一需要知道的是:如何将 numpy 数组保存为与原始输入文件同名的 .npy 文件?
因此输入文件称为'BJ2012_2.tif',输出文件应称为'BJ2012_2.npy'。该过程稍后将循环运行。因此文件夹中的每个文件都将被规范化并以相同的名称但以不同的文件格式保存在不同的文件夹中。
【问题讨论】:
-
我不确定您的问题到底是什么。对于初学者来说,你打电话给
np.save是错误的。第一个参数是路径,第二个是数组。您正在传递三个参数。此外,docs 说:“如果文件是字符串或路径,如果文件名还没有 .npy 扩展名,则会将其附加到文件名。”。你的代码有什么问题?您当前的输出是什么,它与您的预期输出有何不同?你有错误吗? -
是的,我知道,我只是想说明保存的每个 numpy 文件都与其输入文件同名。这是我的问题:如何使我的输出文件与我的输入文件具有相同的名称,当然扩展名除外。这是一种不同的格式
标签: python python-3.x numpy path filenames