La solución al problema de que el contenido de salida del archivo ipynb en jupyter notebook es demasiado para abrir

prefacio

Jupyter notebook es una poderosa herramienta en el campo del análisis y modelado de datos. Puede ver los resultados de salida línea por línea o celda por celda, simplificando problemas complejos.

Cada variable se almacena en caché.Cuando el proceso es más complicado, puede reiniciar directamente desde un determinado paso en lugar de comenzar desde el principio, lo que mejora enormemente la eficiencia.

Jupyter notebook tiene muchas ventajas, pero debido a que el caché también puede cambiar los datos originales, o el valor de la variable ha cambiado sin saberlo, por supuesto, este artículo registra otros problemas: demasiada salida, lo que resulta en el archivo ipynb en jupyter el cuaderno es demasiado grande y no se puede abrir el archivo.

Hay muchas maneras de resolver el problema actual.

método uno

Si aún se puede abrir el archivo, borre la salida directamente
Kernel-->Restart & Clear Output

inserte la descripción de la imagen aquí

Si el archivo se puede abrir, elimínelo manualmente o use el método uno, pero la pregunta difícil es si el archivo ya no se puede abrir, ¿qué debo hacer?

Método dos

Copie un archivo de código fuente para formar un nuevo archivo

Instale el complemento nbconvert, ingrese cmd

pip install jupyter_contrib_nbextensions

Vaya al directorio de archivos que se va a copiar y luego copie un nuevo archivo de origen
Ingrese el siguiente comando, cambie test.ipynb al archivo que se va a copiar

jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --output=NotebookNoOut test.ipynb

inserte la descripción de la imagen aquí
Se puede ver que el NotebookNoOut.ipynb recién generado tiene solo 2.04kB, y solo se conserva el código fuente.

metodo tres

Todavía necesito instalar primero el complemento jupyter_contrib_nbextensions

Elimine la salida directamente en el archivo ipynb

jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace test.ipynb

Del mismo modo, cambie test.ipynb a su propio archivo ipynb

método cuatro

Abra el archivo ipynb actual con el Bloc de notas
inserte la descripción de la imagen aquí

El contenido después de "celdas" son todas las celdas de ipynb, "salidas" es la información de visualización, el contenido outputses "text"el contenido de salida, []elimine el contenido y la información de salida actual quedará vacía, solo necesita encontrar el archivo que no se puede abrir ”text“Simplemente elimine .

当前方法是比较推荐的方法,毕竟不需要安装任何东西,并且选择性的删除输出内容。

Método 5 Extraer por código

import json

with open('test.ipynb', 'r', encoding='utf8')as f:
    json_data = json.load(f)

for i in range(len(json_data['cells'])):
    tmp = json_data['cells'][i]['source']
    print("cell", json_data["cells"][i]["execution_count"])
    for j in tmp:
        print(j, end = '')
    print('\n')

inserte la descripción de la imagen aquí
Lo que se extrae aquí es el código de cada celda, pero la estructura del código de ipynb ha cambiado, lo cual es un inconveniente de usar.

Si va más allá, ¿cómo lidiar con el código reservado y el formato del código?

Dado que ipynb se almacena en un formato determinado, es suficiente mantener el formato de almacenamiento y establecer el texto detrás en [].

código:

import json

with open('test.ipynb', 'r', encoding='utf8')as f:
    json_data = json.load(f)

for i in range(len(json_data['cells'])):
    tmp = json_data['cells'][i]
    if tmp['outputs']:
        tmp['outputs'][0]['text'] = []

with open('test-copy.ipynb', 'w', encoding='utf-8') as file:
    file.write(json.dumps(json_data, indent=2, ensure_ascii=False))

El resultado de la operación
produce un test-copy.ipynbarchivo llamado , que se abre con jupyter notebook.
inserte la descripción de la imagen aquí
El resultado obtenido por el comando anterior es exactamente el mismo, y se realiza la función de eliminar directamente toda la salida, por lo que el archivo es muy pequeño y puede ser abrió.

当前方法也是比较推荐的方法,不需要安装任何东西,输出内容的内容可以增加更多的判断,比如输出内容的长度等。

Supongo que te gusta

Origin blog.csdn.net/Zeus_daifu/article/details/128066691
Recomendado
Clasificación