Difference between revisions of "Python for Data Science"

From Sinfronteras
Jump to: navigation, search
(Customize Jupyter)
(Replaced content with "~ Migrated")
(Tag: Replaced)
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
+
~ Migrated
<br />
 
For a standard Python tutorial go to [[Python]]
 
 
 
 
 
<br />
 
==Courses==
 
*Udemy - Python for Data Science and Machine Learning Bootcamp
 
 
 
:https://www.udemy.com/course/python-for-data-science-and-machine-learning-bootcamp/
 
 
 
 
 
<br />
 
==Anaconda==
 
Anaconda is a free and open source distribution of the Python and R programming languages for data science and machine learning related applications (large-scale data processing, predictive analytics, scientific computing), that aims to simplify package management and deployment. Package versions are managed by the package management system conda. https://en.wikipedia.org/wiki/Anaconda_(Python_distribution)
 
 
 
En otras palabras, Anaconda puede ser visto como un paquete (a distribution) que incluye no solo Python (or R) but many libraries that are used in Data Science, as well as its own virtual environment system. It's an "all-in-one" install that is extremely popular in data science and Machine Learning.Creating sample array for the following examples:
 
 
 
 
 
<br />
 
===Installation===
 
Installation from the official Anaconda Web site: https://docs.anaconda.com/anaconda/install/
 
 
 
 
 
https://linuxize.com/post/how-to-install-anaconda-on-ubuntu-18-04/
 
 
 
https://www.digitalocean.com/community/tutorials/how-to-install-the-anaconda-python-distribution-on-ubuntu-18-04
 
 
 
 
 
<br />
 
 
 
===Anaconda comes with a few IDE===
 
 
 
*Jupyter Lab
 
*Jupyter Notebook
 
*Spyder
 
*Qtconsole
 
*and others
 
 
 
 
 
<br />
 
===Anaconda Navigator===
 
Anaconda Navigator is a GUI that helps you to easily start important applications and manage the packages in your local Anaconda installation
 
 
 
You can open the Anaconda Navigator from the Terminal:
 
anaconda-navigator
 
 
 
 
 
<br />
 
 
 
==Jupyter==
 
Jupyter comes with Anaconda.
 
 
 
*It is a development environment (IDE) where we can write codes; but it also allows us to display images, and write down markdown notes.
 
 
 
*It is the most popular IDE in data science for exploring and analyzing data.
 
 
 
*Other famoues IDE for Python are Sublime Text and PyCharm.
 
 
 
*There is '''Jupyter Lab''' and '''Jupyter Notebook'''
 
 
 
 
 
<br />
 
===Customize Jupyter===
 
https://github.com/dunovank/jupyter-themes
 
 
 
This is a good post: https://forums.fast.ai/t/jupyter-notebook-enhancements-tips-and-tricks/17064
 
 
 
Keyboard Shortcut Customization: https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Custom%20Keyboard%20Shortcuts.html
 
 
 
 
 
jt  -t oceans16    -cellw 99%  -lineh 120  -fs 14  -nfs 14  -dfs 14  -ofs 14
 
 
 
 
 
<br />
 
This is very nice to add text automatically into a cell: https://forums.fast.ai/t/jupyter-notebook-enhancements-tips-and-tricks/17064/27
 
<syntaxhighlight lang="js">
 
Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('Ctrl-Shift-J', {
 
    help : 'add details drop',
 
    help_index : 'zz',
 
    handler : function (event) {
 
        var target = Jupyter.notebook.get_selected_cell()
 
        var cursor = target.code_mirror.getCursor()
 
        var before = target.get_pre_cursor()
 
        var after = target.get_post_cursor()
 
        target.set_text(before + 'from IPython.core.display import display, HTML; \n\taverrrdisplay(HTML("<style>.container { width:98% !important;}</style>"))' + after)
 
        cursor.ch += 20 // where to put your cursor
 
        target.code_mirror.setCursor(cursor)
 
        return false;
 
    }}
 
);
 
</syntaxhighlight>
 
 
 
 
 
<br />
 
This is to enable syntax highlighting for SQL code: https://stackoverflow.com/questions/43641362/adding-syntax-highlighting-to-jupyter-notebook-cell-magic
 
<syntaxhighlight lang="js">
 
require(['notebook/js/codecell'], function(codecell) {
 
  codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = {'reg':[/^%%sql/]} ;
 
  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
 
  Jupyter.notebook.get_cells().map(function(cell){
 
      if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;
 
  });
 
});
 
</syntaxhighlight>
 
 
 
 
 
<br />
 
custom.js
 
<syntaxhighlight lang="js">
 
// Mis configuraciones
 
 
 
require(['notebook/js/codecell'], function(codecell) {
 
  codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = {'reg':[/^%%sql/]} ;
 
  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
 
  Jupyter.notebook.get_cells().map(function(cell){
 
      if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;
 
  });
 
});
 
 
 
 
 
 
 
Jupyter.keyboard_manager.command_shortcuts.add_shortcut('t', {
 
    help : 'run cell',
 
    help_index : 'zz',
 
    handler : function (event) {
 
        IPython.notebook.kernel.execute("print('hola')");
 
        return false;
 
    }}
 
);
 
 
 
 
 
 
 
Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('Ctrl-Shift-J', {
 
    help : 'add details drop',
 
    help_index : 'zz',
 
    handler : function (event) {
 
        document.body.style.background = 'blue'
 
        var target = Jupyter.notebook.get_selected_cell()
 
        var cursor = target.code_mirror.getCursor()
 
        var before = target.get_pre_cursor()
 
        var after = target.get_post_cursor()
 
        target.set_text(before + 'from IPython.core.display import display, HTML; \n\taverrrdisplay(HTML("<style>.container { width:98% !important;}</style>"))' + after)
 
        cursor.ch += 20 // where to put your cursor
 
        target.code_mirror.setCursor(cursor)
 
        return false;
 
    }}
 
);
 
 
 
 
 
 
 
Jupyter.keyboard_manager.command_shortcuts.add_shortcut('Alt-Ctrl-Q', {
 
    help : 'add details drop',
 
    help_index : 'zz',
 
    handler : function (event) {
 
        var input_promp_fields = document.getElementsByClassName("input_prompt");
 
        var input_area_fields  = document.getElementsByClassName("input_area");
 
        var cell_fields        = document.getElementsByClassName("cell");
 
       
 
        if (input_promp_fields[0].style.visibility == "collapse"){
 
            action = "visible";
 
            input_marginLeft = "0px";
 
            border_top  = "3px";
 
            cell_margin = "0px";
 
        }else{
 
            action = "collapse";
 
            input_marginLeft = "-50px";
 
            border_top  = "0px";
 
            cell_margin = "-5px";
 
        }
 
       
 
        for(i = 0; i < input_promp_fields.length; i++) {
 
            input_promp_fields[i].style.visibility = action;
 
            input_area_fields[i].style.marginLeft  = input_marginLeft;
 
            cell_fields[i].style.borderTopWidth    = border_top;
 
            cell_fields[i].style.borderBottomWidth = border_top;
 
            // cell_fields[i].style.marginBottom      = cell_margin;
 
            // cell_fields[i].style.marginTop        = cell_margin;
 
        }
 
        return false;
 
    }}
 
);
 
 
 
 
 
// To get the real value of a css field:
 
// window.getComputedStyle(document.body).backgroundColor
 
// window.getComputedStyle(document.getElementsByClassName("input_area")[0]).backgroundColor
 
</syntaxhighlight>
 
 
 
 
 
<br />
 
 
 
===Online Jupyter===
 
There are many sites that provides solutions to run your Jupyter Notebook in the cloud: https://www.dataschool.io/cloud-services-for-jupyter-notebook/
 
 
 
I have tried:
 
 
 
*https://cocalc.com/app
 
 
 
::https://cocalc.com/projects/595bf475-61a7-47fa-af69-ba804c3f23f9/files/?session=default
 
::Parece bueno, pero tiene opciones que no son gratis
 
 
 
 
 
*https://www.kaggle.com/
 
 
 
::https://www.kaggle.com/adeloaleman/kernel1917a91630/edit
 
::Parece bueno pero no encontré la forma adicionar una TOC
 
 
 
 
 
*https://drive.google.com
 
 
 
:*https://colab.research.google.com
 
::Es el que estoy utilizando ahora
 
 
 
 
 
<br />
 
===Some remarks===
 
 
 
 
 
<br />
 
====Executing Terminal Commands in Jupyter Notebooks====
 
https://support.anaconda.com/hc/en-us/articles/360023858254-Executing-Terminal-Commands-in-Jupyter-Notebooks
 
 
 
If we are in the Notebook, and we want to run a shell command rather than a notebook command we use the <code>'''!'''</code>
 
 
 
Try, for example:
 
!ls or
 
!pwd
 
 
 
It's the same as if you opened up a terminal and typed it without the <code>'''!'''</code>
 
 
 
 
 
<br />
 
===[[HTML presentation with Reveal.js#Creating Presentations in Jupyter Notebook with RevealJS|Creating Presentations in Jupyter Notebook with RevealJS]]===
 
 
 
 
 
<br />
 
 
 
==Some of the most popular Python Data Science Libraries==
 
 
 
*NumPy
 
*SciPy
 
*Pandas
 
*Seaborn
 
*SciKit'Learn
 
*MatplotLib
 
*Plotly
 
*PySpartk
 
 
 
 
 
<br />
 
 
 
==[[NumPy and Pandas]]==
 
 
 
 
 
<br />
 
==[[Data Visualization with Python]]==
 
 
 
 
 
<br />
 
 
 
==[[Natural Language Processing]]==
 
 
 
 
 
<br />
 
==[[Dash - Plotly]]==
 
 
 
 
 
<br />
 
==[[Scrapy]]==
 
 
 
 
 
<br />
 

Latest revision as of 11:33, 28 February 2026

~ Migrated