#!/usr/bin/env python
# coding: utf-8

# ### Урок 4.6: чтение/запись списков

# Чтобы было проще работать, сначала обсудим запись списков, тем самым сохранив списки себе на компьютер, а потом будем загружать их в Python. Мотивация: удобно для хранения больших списков с данными + например, для сохранения результатов разных моделей.

# Пусть у нас есть массив из предыдущего урока с данными по трем респондентам:

# In[1]:


import numpy as np
info = np.array([('Anna', 19, 168), 
                 ('Sam', 33, 175.5), 
                 ('Pam', 23, 180)],
             dtype=[('name', 'U10'), 
                    ('age', int), 
                    ('height', float)])


# In[86]:


info


# Запишем его в файл формата `.npy`: сначала укажем название файла, а затем – сам массив, который сохраняем.

# In[89]:


np.save("info.npy", info)


# Теперь этот файл можно увидеть во вкладке *Home* в Jupyter Notebook, в рабочей папке. Попробуем выполнить обратную операцию: считаем массив из numpy-файла:

# In[90]:


np.load("info.npy")


# Выгружать списки можно в разные форматы. Например, можно просто сохранить массив в текстовый файл с расширением `.txt`:

# In[96]:


ages = np.array([61, 73, 18, 92])


# In[97]:


np.savetxt("ages.txt", ages)


# И аналогичным образом считать:

# In[98]:


np.loadtxt("ages.txt")


# Если нет необходимости работать с файлами, можем просто превратить массив в другой объект Python. Например, в обычный список:

# In[99]:


info.tolist()


# Или строку:

# In[101]:


np.array2string(info)

