{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Numpy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Biblioteka szeroko wykorzystywana do wykonywania obliczeń numerycznych." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Przykłady użycia" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rozróżnienie między standardową listą a listą oferowaną przez bibliotekę numpy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "import numpy as np\n", "\n", "x = [1, 2, 3, 4, 5, 6]\n", "v = np.array(x)\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przykład listy 2d, czyli macierzy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M = np.array([[1,2], [3,4]])\n", "M" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "type(v), type(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sprawdzenie wymiarów listy/macierzy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "v.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M.size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Typ danych w macierzy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M.dtype" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generowanie liczb losowych (w formie macierzy):" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "np.random.rand(5,3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Macierz zer:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "np.zeros([5,3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Operacje na macierzach:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M = np.array([[1,2,3], [4,5,6]])\n", "N = np.array([[1,1,1], [2,2,2]])\n", "print(N)\n", "print(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dodawanie:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M + N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mnożenie przez skalar:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "5*M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mnozenie odpowiadającyh sobie kolejnych komórek macierzy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M*N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Iloczyn macierzowy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# dlaczego nie działa?\n", "M.dot(N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transpozycja + iloczyn macierzowy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M.dot(N.T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generowanie liczb z zakresu z krokiem (przydatne do wykresów):" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "v = np.arange(0, 10.01, 0.5)\n", "print(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generowanie (100) liczb z zakresu (przydatne do wykresów):" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Generowanie rownych odstepow\n", "v = np.linspace(0,10,100)\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wbudowane funkcje przyjmują macierze jako argumenty:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "np.sin(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przykład zwięzłego wygenerowania sinusa:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "%matplotlib inline\n", "from matplotlib import pyplot as plt\n", "plt.plot(v, np.sin(v))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Czytanie (krojenie) macierzy:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]])\n", "M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wszystkie wiersze razy druga (trzecia) kolumna:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M[:,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Drugi (trzeci) wiersz razy kolumny z przedziału 1:3 :" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M[2,1:3]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M[1:3,2:4]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M[::2,:]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Można nadpisywać podczas czytania:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "M[::2,::2]=0\n", "M\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" } }, "nbformat": 4, "nbformat_minor": 4 }