2015-11-24 1346 views
4

对不起。我现在正在学习Python,以及与数据分析有关的一切。使用Spyder/Python打开.npy文件

我怎么用Spyder打开一个.npy文件?还是我必须使用另一个程序?我使用的是苹果机,如果这是相关的。

+0

'npy'文件是用'np.load'读取的。 – hpaulj

+0

等,np.load(“文件名”)? – DarthLazar

回答

6

*.npy文件是用来存储numpy数组的二进制文件。他们 与

import numpy as np 

data = np.random.normal(0, 1, 100) 
np.save('data.npy', data) 

创建而像

import numpy as np 
data = np.load('data.npy') 
+0

我试过导入它,它说'没有这样的文件或目录:' – DarthLazar

+0

这可能是你的工作目录与文件位置的问题。 – MaxNoe

+0

'.npy'文件位于python文件的文件夹中。所以这可能是由于该目录。我可以看看我能不能做任何事情。 – DarthLazar

2

.npy文件是二进制文件读入。 不要试图用Spyder或任何文本编辑器打开它;你看到的可能对你没有意义。

而是使用numpy模块(参考:http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.load.html)加载.npy文件。

代码示例:

首先,导入numpy。如果没有它,安装(这里是如何:http://docs.scipy.org/doc/numpy/user/install.html

>>> import numpy as np 

让我们设置一个随机numpy的阵列可变array

>>> array = np.random.randint(1,5,10) 
>>> print array 
[2 3 1 2 2 3 1 2 3 3] 

要导出到.npy文件,使用np.save(FILENAME, OBJECT)其中OBJECT = array

>>> np.save('test.npy', array) 

可以加载使用np.load(FILENAME)

>>> array_loaded = np.load('test.npy') 

.npy文件让我们比较原始array VS从文件中加载的一个(array_loaded

>>> print 'Loaded: ', array_loaded 
Loaded: [2 3 1 2 2 3 1 2 3 3] 

>>> print 'Original:', array 
Original: [2 3 1 2 2 3 1 2 3 3] 
+0

所以我会使用终端或ipython的numpy模块? – DarthLazar

+0

你可以做终端或IPython/Jupyter笔记本。 IPython笔记本可以做任何你可以在终端上做的事情,但有许多有用的功能。使用Python时,我强烈建议使用终端的笔记本电脑。这是一个很好的介绍,如果你需要它IPython:http://www.pythonforbeginners.com/basics/ipython-a-short-introduction –

1

既然你问Spyder的,你需要做两两件事来导入这些文件:

  1. 选择名为Variable Explorer
  2. 按导入按钮(如下图所示)的窗格中,选择您的.npy文件和目前Ok

    import button

然后你就可以在当前的Python或IPython的控制台,文件工作。

+0

这就是答案! –

1
import numpy as np 
from matplotlib import pyplot as plt 
import matplotlib 
import glob 


for filename in glob.glob("*.*"): 
    if '.npy' in filename: 
     img_array = np.load(filename) 
     plt.imshow(img_array, cmap="gray") 
     img_name = filename+".png" 
     matplotlib.image.imsave(img_name, img_array) 
     print(filename) 

为格式为.npy的当前目录中的每个图像创建一个png文件。例如,我有这个RGB图像 enter image description here 它的深度图像是以.npy格式。将它转换为png给了我如此: enter image description here