GitHub

@@ -18,8 +18,7 @@ kernelspec:

1818

</div>

1919

```

202021-

```{index}

22-

single: python

21+

```{index} single: python

2322

```

24232524

# About Python

@@ -122,8 +121,7 @@ Other features of Python:

122121123122

### Syntax and Design

124123125-

```{index}

126-

single: Python; syntax and design

124+

```{index} single: Python; syntax and design

127125

```

128126129127

One nice feature of Python is its elegant syntax --- we'll see many examples later on.

@@ -140,8 +138,7 @@ Features like iterators, generators, decorators and list comprehensions make Pyt

140138141139

## Scientific Programming

142140143-

```{index}

144-

single: scientific programming

141+

```{index} single: scientific programming

145142

```

146143147144

Python has become one of the core languages of scientific computing.

@@ -163,8 +160,7 @@ This section briefly showcases some examples of Python for scientific programmin

163160164161

### Numerical Programming

165162166-

```{index}

167-

single: scientific programming; numeric

163+

```{index} single: scientific programming; numeric

168164

```

169165170166

Fundamental matrix and array processing capabilities are provided by the excellent [NumPy](http://www.numpy.org/) library.

@@ -218,8 +214,7 @@ See them all [here](http://docs.scipy.org/doc/scipy/reference/index.html).

218214219215

### Graphics

220216221-

```{index}

222-

single: Matplotlib

217+

```{index} single: Matplotlib

223218

```

224219225220

The most popular and comprehensive Python library for creating figures and graphs is [Matplotlib](http://matplotlib.org/), with functionality including

@@ -258,8 +253,7 @@ Other graphics libraries include

258253259254

It's useful to be able to manipulate symbolic expressions, as in Mathematica or Maple.

260255261-

```{index}

262-

single: SymPy

256+

```{index} single: SymPy

263257

```

264258265259

The [SymPy](http://www.sympy.org/) library provides this functionality from within the Python shell.

@@ -315,8 +309,7 @@ the last few years.

315309316310

#### Pandas

317311318-

```{index}

319-

single: Pandas

312+

```{index} single: Pandas

320313

```

321314322315

One of the most popular libraries for working with data is [pandas](http://pandas.pydata.org/).

@@ -343,26 +336,22 @@ df.mean()

343336344337

#### Other Useful Statistics Libraries

345338346-

```{index}

347-

single: statsmodels

339+

```{index} single: statsmodels

348340

```

349341350342

* [statsmodels](http://statsmodels.sourceforge.net/) --- various statistical routines

351343352-

```{index}

353-

single: scikit-learn

344+

```{index} single: scikit-learn

354345

```

355346356347

* [scikit-learn](http://scikit-learn.org/) --- machine learning in Python (sponsored by Google, among others)

357348358-

```{index}

359-

single: pyMC

349+

```{index} single: pyMC

360350

```

361351362352

* [pyMC](http://pymc-devs.github.io/pymc/) --- for Bayesian data analysis

363353364-

```{index}

365-

single: pystan

354+

```{index} single: pystan

366355

```

367356368357

* [pystan](https://pystan.readthedocs.org/en/latest/) Bayesian analysis based on [stan](http://mc-stan.org/)

@@ -371,8 +360,7 @@ single: pystan

371360372361

Python has many libraries for studying graphs.

373362374-

```{index}

375-

single: NetworkX

363+

```{index} single: NetworkX

376364

```

377365378366

One well-known example is [NetworkX](http://networkx.github.io/).

@@ -414,70 +402,59 @@ plt.show()

414402415403

### Cloud Computing

416404417-

```{index}

418-

single: cloud computing

405+

```{index} single: cloud computing

419406

```

420407421408

Running your Python code on massive servers in the cloud is becoming easier and easier.

422409423-

```{index}

424-

single: cloud computing; anaconda enterprise

410+

```{index} single: cloud computing; anaconda enterprise

425411

```

426412427413

A nice example is [Anaconda Enterprise](https://www.anaconda.com/enterprise/).

428414429415

See also

430416431-

```{index}

432-

single: cloud computing; amazon ec2

417+

```{index} single: cloud computing; amazon ec2

433418

```

434419435420

* [Amazon Elastic Compute Cloud](http://aws.amazon.com/ec2/)

436421437-

```{index}

438-

single: cloud computing; google app engine

422+

```{index} single: cloud computing; google app engine

439423

```

440424441425

* The [Google App Engine](https://cloud.google.com/appengine/) (Python, Java, PHP or Go)

442426443-

```{index}

444-

single: cloud computing; pythonanywhere

427+

```{index} single: cloud computing; pythonanywhere

445428

```

446429447430

* [Pythonanywhere](https://www.pythonanywhere.com/)

448431449-

```{index}

450-

single: cloud computing; sagemath cloud

432+

```{index} single: cloud computing; sagemath cloud

451433

```

452434453435

* [Sagemath Cloud](https://cloud.sagemath.com/)

454436455437

### Parallel Processing

456438457-

```{index}

458-

single: parallel computing

439+

```{index} single: parallel computing

459440

```

460441461442

Apart from the cloud computing options listed above, you might like to consider

462443463-

```{index}

464-

single: parallel computing; ipython

444+

```{index} single: parallel computing; ipython

465445

```

466446467447

* [Parallel computing through IPython clusters](http://ipython.org/ipython-doc/stable/parallel/parallel_demos.html).

468448469-

```{index}

470-

single: parallel computing; starcluster

449+

```{index} single: parallel computing; starcluster

471450

```

472451473452

* The [Starcluster](http://star.mit.edu/cluster/) interface to Amazon's EC2.

474453475-

```{index}

476-

single: parallel computing; copperhead

454+

```{index} single: parallel computing; copperhead

477455

```

478456479-

```{index}

480-

single: parallel computing; pycuda

457+

```{index} single: parallel computing; pycuda

481458

```

482459483460

* GPU programming through [PyCuda](https://wiki.tiker.net/PyCuda), [PyOpenCL](https://mathema.tician.de/software/pyopencl/), [Theano](http://deeplearning.net/software/theano/) or similar.

@@ -489,32 +466,27 @@ There are many other interesting developments with scientific programming in Pyt

489466490467

Some representative examples include

491468492-

```{index}

493-

single: scientific programming; Jupyter

469+

```{index} single: scientific programming; Jupyter

494470

```

495471496472

* [Jupyter](http://jupyter.org/) --- Python in your browser with interactive code cells, embedded images and other useful features.

497473498-

```{index}

499-

single: scientific programming; Numba

474+

```{index} single: scientific programming; Numba

500475

```

501476502477

* [Numba](http://numba.pydata.org/) --- Make Python run at the same speed as native machine code!

503478504-

```{index}

505-

single: scientific programming; Blaze

479+

```{index} single: scientific programming; Blaze

506480

```

507481508482

* [Blaze](http://blaze.pydata.org/) --- a generalization of NumPy.

509483510-

```{index}

511-

single: scientific programming; PyTables

484+

```{index} single: scientific programming; PyTables

512485

```

513486514487

* [PyTables](http://www.pytables.org) --- manage large data sets.

515488516-

```{index}

517-

single: scientific programming; CVXPY

489+

```{index} single: scientific programming; CVXPY

518490

```

519491520492

* [CVXPY](https://github.com/cvxgrp/cvxpy) --- convex optimization in Python.

@@ -525,8 +497,7 @@ single: scientific programming; CVXPY

525497

* Read more about [Python's history and rise in popularity](https://www.welcometothejungle.com/en/articles/btc-python-popular) .

526498

* Have a look at [some of the Jupyter notebooks](http://nbviewer.jupyter.org/) people have shared on various scientific topics.

527499528-

```{index}

529-

single: Python; PyPI

500+

```{index} single: Python; PyPI

530501

```

531502532503

* Visit the [Python Package Index](https://pypi.org/).

Read the original on github.com ↗