{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d057e434",
   "metadata": {},
   "source": [
    "# 🧠 Dzień 1: Środowisko pracy analityka i NumPy\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "87a3a255",
   "metadata": {},
   "source": [
    "## 🔧 Konfiguracja środowiska\n",
    "Zainstaluj Anacondę i utwórz środowisko Conda o nazwie `ml-env`:\n",
    "\n",
    "```bash\n",
    "conda create -n ml-env python=3.12\n",
    "conda activate ml-env\n",
    "```\n",
    "\n",
    "Możesz także użyć `pip` do instalacji paczek:\n",
    "\n",
    "```bash\n",
    "pip install numpy pandas jupyter\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7fb0290",
   "metadata": {},
   "source": [
    "## 📓 Jupyter Notebook – podstawy\n",
    "- Komórki kodu i Markdown\n",
    "- Skróty klawiszowe (`Ctrl+Enter`, `Shift+Enter`, `A`, `B` itd.)\n",
    "\n",
    "**Zadanie:** Stwórz komórkę Markdown i wpisz nagłówek oraz listę punktowaną."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "18bf84af",
   "metadata": {},
   "source": [
    "## 🔢 NumPy – podstawy\n",
    "- Tworzenie wektorów i macierzy\n",
    "- Operacje matematyczne\n",
    "- Wektoryzacja i broadcasting\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e3bfabbb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 2 3]\n",
      "[[1 2]\n",
      " [3 4]]\n"
     ]
    }
   ],
   "source": [
    "# Przykład: stworzenie wektora i macierzy\n",
    "import numpy as np\n",
    "\n",
    "wektor = np.array([1, 2, 3])\n",
    "macierz = np.array([[1, 2], [3, 4]])\n",
    "print(wektor)\n",
    "print(macierz)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "666b0410",
   "metadata": {},
   "source": [
    "### ✍️ Zadanie 1\n",
    "Stwórz:\n",
    "- wektor 1D z liczbami od 10 do 20\n",
    "- macierz 3x3 z losowymi liczbami całkowitymi od 0 do 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "10555f08",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10 11 12 13 14 15 16 17 18 19 20]\n",
      "[[26 84 24]\n",
      " [92 74 70]\n",
      " [91 15 14]]\n"
     ]
    }
   ],
   "source": [
    "# Zadanie 1 – Przykładowe rozwiązanie\n",
    "wektor = np.arange(10, 21)\n",
    "macierz = np.random.randint(0, 101, size=(3, 3))\n",
    "print(wektor)\n",
    "print(macierz)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3660456f",
   "metadata": {},
   "source": [
    "### ✍️ Zadanie 2\n",
    "Wykonaj dodawanie, mnożenie i dzielenie elementów dwóch tablic NumPy o takim samym rozmiarze."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64897ffd",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Zadanie 2 – Przykładowe rozwiązanie\n",
    "a = np.array([1, 2, 3])\n",
    "b = np.array([4, 5, 6])\n",
    "print(\"Dodawanie:\", a + b)\n",
    "print(\"Mnożenie:\", a * b)\n",
    "print(\"Dzielenie:\", a / b)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92dc2d65",
   "metadata": {},
   "source": [
    "## 🎯 Wektoryzacja i broadcasting\n",
    "Pokażmy, jak NumPy automatycznie rozszerza kształty macierzy:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7d8b1810",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = np.array([1, 2, 3])\n",
    "b = 10\n",
    "a * b  # broadcasting mnożenia przez skalar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a2a2bb9d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Zadanie 3 – Przykładowe rozwiązanie\n",
    "macierz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])\n",
    "wektor = np.array([10, 20, 30])\n",
    "# Dodanie wektora do każdej kolumny\n",
    "wynik1 = macierz + wektor\n",
    "# Przemnożenie kolumn przez inne wartości\n",
    "współczynniki = np.array([1, 2, 3])\n",
    "wynik2 = macierz * współczynniki\n",
    "print(\"Dodanie:\", wynik1, sep=\"\\n\")\n",
    "print(\"Mnożenie:\", wynik2, sep=\"\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4a54d6b7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Tutaj wpisz swoje rozwiązanie\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1823dd52",
   "metadata": {},
   "source": [
    "## ✅ Podsumowanie dnia 1\n",
    "Znasz już:\n",
    "- podstawy Conda, pip i środowisk\n",
    "- jak korzystać z Jupyter Notebook\n",
    "- jak tworzyć i przekształcać dane w NumPy\n",
    "\n",
    "W kolejnym dniu przejdziemy do Pandas i pobierania danych."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.12.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
