<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FNumpy</id>
	<title>TI/Numpy - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FNumpy"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Numpy&amp;action=history"/>
	<updated>2026-04-17T15:41:05Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Numpy&amp;diff=4435&amp;oldid=prev</id>
		<title>Rjb o 13:02, 8 gru 2015</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Numpy&amp;diff=4435&amp;oldid=prev"/>
		<updated>2015-12-08T13:02:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 13:02, 8 gru 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot; &gt;Linia 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dostęp do pojedynczego elementu:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dostęp do pojedynczego elementu:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'shell_example'&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;python&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A = array([[1, 2, 3],[4,5,6]])&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A = array([[1, 2, 3],[4,5,6]])&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l87&quot; &gt;Linia 87:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 87:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Pod-macierze ====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Pod-macierze ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dostęp do pod-macierzy:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dostęp do pod-macierzy:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'shell_example'&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;python&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A[1]             # wiersz 1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A[1]             # wiersz 1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;array([4, 5, 6])&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;array([4, 5, 6])&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l97&quot; &gt;Linia 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jak widać, ograniczenie się do pojedynczego punktu w danym wymiarze, powoduje degenerację tego wymiaru. Uzyskuje się macierz, w której liczba wymiarów jest mniejsza o jeden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jak widać, ograniczenie się do pojedynczego punktu w danym wymiarze, powoduje degenerację tego wymiaru. Uzyskuje się macierz, w której liczba wymiarów jest mniejsza o jeden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'shell_example'&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;python&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A[:, 1:]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; A[:, 1:]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;array([[2, 3],&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;array([[2, 3],&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l110&quot; &gt;Linia 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Uwaga: W wyniku dostajemy macierz jedno wierszową.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Uwaga: W wyniku dostajemy macierz jedno wierszową.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Przykład:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Przykład:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'shell_example'&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;python&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; print A&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; print A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[1 2 3]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[1 2 3]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rjb</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Numpy&amp;diff=1613&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot; right  == Pakiet Numpy ==  Moduł [http://numpy.scipy.org/ Numpy] jest podstawowym zestawem narzędzi dla języka Python umożliwiającym zaaw...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Numpy&amp;diff=1613&amp;oldid=prev"/>
		<updated>2015-05-22T20:08:29Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot; &lt;a href=&quot;/edu/index.php/Plik:Numpylogo.png&quot; title=&quot;Plik:Numpylogo.png&quot;&gt;right&lt;/a&gt;  == Pakiet Numpy ==  Moduł [http://numpy.scipy.org/ Numpy] jest podstawowym zestawem narzędzi dla języka Python umożliwiającym zaaw...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
[[Grafika:Numpylogo.png|right]]&lt;br /&gt;
&lt;br /&gt;
== Pakiet Numpy ==&lt;br /&gt;
&lt;br /&gt;
Moduł [http://numpy.scipy.org/ Numpy] jest podstawowym zestawem narzędzi dla języka Python umożliwiającym zaawansowane obliczenia matematyczne, w szczególności do zastosowań naukowych (tzw. ''obliczenia numeryczne'', jak mnożenie i dodawanie macierzy, diagonalizacja czy odwrócenie, całkowanie, rozwiązywanie równań, itd.). Daje on nam do dyspozycji specjalizowane typy danych, operacje i funkcje, których nie ma w typowej instalacji Pythona. Natomiast moduł [http://scipy.org/ Scipy] pozwala na dostęp do bardziej złożonych i różnorodnych algorytmów wykorzystujących bazę zdefiniowaną w Numpy.&lt;br /&gt;
&lt;br /&gt;
Przedstawimy tutaj tylko wstęp do Numpy. Wynika to z faktu, że opisanie licznych funkcji dostępnych w bibliotece Numpy jest ogromną pracą, która zupełnie nie ma sensu — równie dobrze można zajrzeć bezpośrednio do źródła,&lt;br /&gt;
http://docs.scipy.org/doc/numpy/reference/.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Sercem modułu Numpy jest wielowymiarowa macierz służąca do przechowywania wartości jednego typu, takich jak 32-bitowe liczby całkowite czy 64-bitowe liczby zmienno-przecinkowe.--&amp;gt;&lt;br /&gt;
Najważniejszym obiektem, na którym bazuje pakiet Numpy i szereg pakietów z niego korzystających jest klasa &amp;lt;tt&amp;gt;ndarray&amp;lt;/tt&amp;gt; wprowadzająca obiekty &amp;lt;tt&amp;gt;array&amp;lt;/tt&amp;gt;. Obiekty array możemy traktować jako uniwersalne pojemniki na dane w postaci ''macierzy'' (czyli ''wektorów'' lub ''tablic''). W porównaniu ze standardowymi typami sekwencji Pythonowych (lista, krotka) jest kilka różnic w operowaniu tymi obiektami:&lt;br /&gt;
# obiekty przechowywane w macierzy &amp;lt;tt&amp;gt;array&amp;lt;/tt&amp;gt; muszą być wszystkie tego samego typu;&lt;br /&gt;
# obiekty &amp;lt;tt&amp;gt;array&amp;lt;/tt&amp;gt; zachowują swój rozmiar; przy zmianie rozmiaru takiego obiektu powstaje nowy obiekt, a obiekt sprzed zmiany zostaje usunięty;&lt;br /&gt;
# obiekty &amp;lt;tt&amp;gt;array&amp;lt;/tt&amp;gt; wyposażone są w bogaty zestaw funkcji operujących na wszystkich przechowywanych w obiekcie danych, specjalnie optymalizowanych do przetwarzania dużych ilości danych. Jak to działa zostanie zaprezentowane poniżej.&lt;br /&gt;
&lt;br /&gt;
=== Tworzenie ===&lt;br /&gt;
&lt;br /&gt;
Najprostszym sposobem stworzenia macierzy Numpy jest wywołanie funkcji &amp;lt;tt&amp;gt;array&amp;lt;/tt&amp;gt; z argumentem w postaci listy liczb. Jeśli zamiast listy liczb użyjemy listy zawierającej inne listy (tzw. listy ''zagnieżdżone''), to otrzymamy macierz wielowymiarową. Na przykład jeśli listy są podwójnie zagnieżdzone, to otrzymujemy macierz dwuwymiarową (tablicę).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
# przykład wykorzystania Numpy&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import numpy&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A = numpy.array([1, 3, 7, 2, 8])&lt;br /&gt;
array([1, 3, 7, 2, 8])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; B = numpy.array([[1, 2, 3], [4, 5, 6]])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; B&lt;br /&gt;
array([[1, 2, 3],&lt;br /&gt;
       [4, 5, 6]])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; B.transpose()&lt;br /&gt;
array([[1, 4],&lt;br /&gt;
       [2, 5],&lt;br /&gt;
       [3, 6]])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Innym sposobem tworzenia macierzy jest funkcja &amp;lt;tt&amp;gt;numpy.arange&amp;lt;/tt&amp;gt;, która działa analogicznie do &amp;lt;tt&amp;gt;range&amp;lt;/tt&amp;gt;, tyle tylko, że zwraca macierz zamiast listy.&lt;br /&gt;
Argumenty są takie same:&lt;br /&gt;
# indeks początkowy [opcjonalnie, domyślnie 0]&lt;br /&gt;
# indeks następny po końcowym&lt;br /&gt;
# krok [opcjonalnie, domyślnie 1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; numpy.arange(1000000)&lt;br /&gt;
array([     0,      1,      2, ..., 999997, 999998, 999999])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jak było już wspomniane, w przypadku macierzy &amp;lt;tt&amp;gt;array&amp;lt;/tt&amp;gt; typowe operacje matematyczne możemy przeprowadzić dla wszystkich elementów macierzy przy użyciu jednego operatora lub funkcji. Zachowanie takie jest odmienne niż w przypadku list czy innych sekwencji Pythona. Jeśli chcielibyśmy na przykład pomnożyć wszystkie elementy listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; przez liczbę &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;, musimy użyć pętli:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
L = [1, 3, 5, 2, 3, 1]&lt;br /&gt;
for i in L:&lt;br /&gt;
    L[i]=L[i]*a&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Natomiast mnożenie wszystkich elementów macierzy &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; przez liczbę &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; wygląda tak:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
M = numpy.array([1, 3, 5, 2, 3, 1])&lt;br /&gt;
M = M*a&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Operacje wykonywane od razu na całych macierzach mają wiele zalet. Kod programu jest prostszy i krótszy, przez co mniej podatny na błędy. Poza tym nie musimy przejmować się konkretną realizacją danej operacji &amp;amp;mdash; robi to za nas funkcja pakietu Numpy, która jest specjalnie optymalizowana, żeby działała jak najszybciej.&lt;br /&gt;
&lt;br /&gt;
;Inne: zob.[http://docs.scipy.org/doc/numpy/reference/generated/numpy.mgrid.html numpy.mgrid], [http://docs.scipy.org/doc/numpy/reference/generated/numpy.ogrid.html numpy.ogrid], [http://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html numpy.linspace], [http://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html numpy.zeros], [http://docs.scipy.org/doc/numpy/reference/generated/numpy.ones.html numpy.ones], [http://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html numpy.r_].&lt;br /&gt;
&lt;br /&gt;
=== Wydobywanie danych ===&lt;br /&gt;
==== Pojedyncze liczby ====&lt;br /&gt;
Dostęp do elementów (i pod-macierzy) jest możliwy poprzez wykorzystanie notacji indeksowej (&amp;lt;tt&amp;gt;macierz[i]&amp;lt;/tt&amp;gt;) jak i wycinkowej (&amp;lt;tt&amp;gt;macierz[i:j]&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Dostęp do pojedynczego elementu:&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A = array([[1, 2, 3],[4,5,6]])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A&lt;br /&gt;
array([[1, 2, 3],&lt;br /&gt;
       [4, 5, 6]])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A[0][2]    # podobnie jak w Pythonie,numeracja od 0&lt;br /&gt;
3&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A[0, 2]&lt;br /&gt;
3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Indeksy dotyczące poszczególnych wymiarów można oddzielić przecinkami.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Macierz.svg|right]]&lt;br /&gt;
&lt;br /&gt;
Macierz &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; jest tablicą dwuwymiarową, i sposób numerowania zawartych w niej obiektów jest następujący: pierwszy indeks przebiega pierwszy wymiar (wybiera wiersz), drugi indeks przebiega drugi wymiar (wybiera kolumnę).&lt;br /&gt;
&lt;br /&gt;
==== Pod-macierze ====&lt;br /&gt;
Dostęp do pod-macierzy:&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A[1]             # wiersz 1&lt;br /&gt;
array([4, 5, 6])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A[1, :]          # wiersz 1, wszystkie kolumny&lt;br /&gt;
array([4, 5, 6])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A[:, 1]          # wszystkie wiersze, kolumna 1&lt;br /&gt;
array([2, 5])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Jak widać, ograniczenie się do pojedynczego punktu w danym wymiarze, powoduje degenerację tego wymiaru. Uzyskuje się macierz, w której liczba wymiarów jest mniejsza o jeden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; A[:, 1:]&lt;br /&gt;
array([[2, 3],&lt;br /&gt;
       [5, 6]])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
W pierwszym wymiarze (wiersze) bierzemy wszystko, natomiast w drugim od 1 do końca. Efektywnie wycinamy kolumnę 0.&lt;br /&gt;
&lt;br /&gt;
==== Indeksowanie macierzy macierzami ====&lt;br /&gt;
Do wybrania elementów z macierzy można tez użyć innej macierzy. Może to być&lt;br /&gt;
* macierz liczb — wówczas są one traktowane jako indeksy. Wybieramy te elementy, które uzyskalibyśmy indeksując każdym z indeksów z osobna&lt;br /&gt;
* macierz wartości logicznych (''boolean'') rozmiaru macierzy z danymi. Wybieramy te elementy, którym odpowiada &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; w macierzy indeksującej.&lt;br /&gt;
Uwaga: W wyniku dostajemy macierz jedno wierszową.&lt;br /&gt;
;Przykład:&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print A&lt;br /&gt;
[[1 2 3]&lt;br /&gt;
 [4 5 6]]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print A &amp;gt; 2&lt;br /&gt;
[[False False  True]&lt;br /&gt;
 [ True  True  True]]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print A[A &amp;gt; 2]&lt;br /&gt;
[3 4 5 6]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print A[A % 2 == 0]&lt;br /&gt;
[2 4 6]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Więcej: http://docs.scipy.org/doc/numpy/user/basics.indexing.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Broadcasting ===&lt;br /&gt;
TODO&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Istnieją natomiast silne różnice, które postaram się przedstawić i uzasadnić.&lt;br /&gt;
&lt;br /&gt;
Piersza istotna właściwość numpy.ndarray to&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{/Tabliczka}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Porównanie liczb w Numpy i liczb w Pythonie ==&lt;br /&gt;
Przejście od Pythona do Numpy oznacza odejście od obiektowości. Oczywiście takie stwierdzenie można natychmiast skontrować:&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
    numpy.random.random((10,10)).var()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
jest typowym przykładem notacji obiektowej, i generalnie ma cechy obiektowości (ukrywanie detali implementacji, polimorfizm).&lt;br /&gt;
Odejście od obiektowości występuje tylko na poziomie indywidualnych elementów — liczb. &lt;br /&gt;
&lt;br /&gt;
[[Grafika:Float32python.png|300px|left]]&lt;br /&gt;
[[Grafika:Float32.png|150px|right]] &lt;br /&gt;
W Pythonie, tak jak w zasadniczej większości języków programowania, operacje na liczbach są ostatecznie wykonywane przez procesor, w identyczny sposób niezależnie od języka programowania. A procesor, jak wiadomo, umie wykonywać tylko proste operacje. Przez to liczby, które się mu podaje by wykonać na nich działania, są w ściśle określonym formacie, niezależnym od języka programowania. Tak więc obiekt w Pythonie, np. liczba zmiennoprzecinkowa, zawiera pewne meta-informacje o tym obiekcie (jak ''reference-count'', czyli liczba użytkowników obiektu, i typ, czyli przypisanie do klasy) oraz właściwe dane, w formacie oczekiwanym przez procesor.&lt;br /&gt;
&lt;br /&gt;
Rysunki powyżej przedstawiają schematycznie zmienną w Pythonie (typu float) i pojedynczy element macierzy &amp;lt;tt&amp;gt;numpy.ndarray&amp;lt;/tt&amp;gt;.&lt;br /&gt;
W przypadku architektury 32-bitowej, liczba float ma 4 bajty (32 bity), a cały obiekt 12 bajtów, czyli 96 bitów).&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Lista 4.svg|300px|left|caption||lista czterech liczb w Pythonie]]&lt;br /&gt;
[[Grafika:Tablica_numpy.svg|200px|right|caption||macierz czterech liczb w Numpy]]&lt;br /&gt;
Odejście od obiektowości w Numpy oznacza zatracenie obiektowości indywidualnych elementów macierzy, natomiast sam obiekt &amp;lt;tt&amp;gt;numpy.ndarray&amp;lt;/tt&amp;gt; bardzo silnie wykorzystuje notację i właściwości podejścia obiektowego. Indywidualne elementy macierzy muszą być tego samego typu — oznacza to ten sam rozmiar w bajtach oraz identyczną interpretację i zachowanie każdego elementu.&lt;br /&gt;
&lt;br /&gt;
Można powiedzieć, że &amp;lt;tt&amp;gt;numpy.ndarray&amp;lt;/tt&amp;gt; rezygnuje z części możliwości na rzecz wydajności, przed wszystkim różnorodności typów przedstawionej jak na rysunku poniżej.&lt;br /&gt;
[[Grafika:Lista 4 różne.svg|300px|center|caption||lista może zawierać różne obiekty]]&lt;br /&gt;
&lt;br /&gt;
;„Eksport” danych z Numpy do Pythona&lt;br /&gt;
Każda liczba w Pythonie jest indywidualnym obiektem. Liczby w Numpy takie nie są. Niemniej, kiedy wybierzemy jeden element z macierzy (np. używając []), to otrzymujemy liczbę-obiekt. Numpy automatycznie tworzy nowe obiekty do przechowywania liczb które mają być użyte poza Numpy.&lt;br /&gt;
&lt;br /&gt;
== Specjalne wartości liczbowe ==&lt;br /&gt;
Pakiet Numpy wprowadza też szczególne wartości dla przechowywania nietypowych wyników obliczeń. Należą tutaj takie wartości jak:&lt;br /&gt;
* &amp;lt;tt&amp;gt;inf&amp;lt;/tt&amp;gt; opisująca wartość nieskończoną. Są dostępne również jej następujące warianty: &amp;lt;tt&amp;gt;PINF&amp;lt;/tt&amp;gt; odpowiada wartości +&amp;amp;infin;, natomiast &amp;lt;tt&amp;gt;NINF&amp;lt;/tt&amp;gt; wartości &amp;amp;minus;&amp;amp;infin;. Do sprawdzenia czy badana zmienna &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; zawiera &amp;amp;bdquo;normalną&amp;amp;rdquo; czy nieskończoną wartość używamy funkcji &amp;lt;tt&amp;gt;isfinite(x)&amp;lt;/tt&amp;gt; pakietu Numpy. Zwraca ona &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt; w przypadku napotkania wartości nieskończonej w zmiennej &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;lt;tt&amp;gt;NaN&amp;lt;/tt&amp;gt; opisującą nie-liczbę (przechowywaną w zmiennej liczbowej, NaN to skrót od angielskiego ''not a number''), wartość, która nie reprezentuje żadnej liczby. Wartość taka pojawia się w przypadku próby wykonania pewnych niedozwolonych operacji matematycznych lub sygnalizuje wystąpienie wyniku takiej operacji. Warto tutaj zauważyć, że porównanie &amp;lt;tt&amp;gt;numpy.NaN == numpy.NaN&amp;lt;/tt&amp;gt; daje wynik &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;. Aby sprawdzić czy mamy do czynienia z taką wartością używamy funkcji &amp;lt;tt&amp;gt;isnan&amp;lt;/tt&amp;gt; pakietu Numpy.&lt;br /&gt;
Jakkolwiek wartości te nie są dostępne w standardowym Pythonie, są one zestandaryzowane i opisane w normie IEEE-754; zapisane w pliku binarnym będą poprawnie interpretowane przez inne programy stosujące się do tej normy.&lt;br /&gt;
&lt;br /&gt;
== Dlaczego warto używać Numpy? ==&lt;br /&gt;
Pierwsza przyczyna, zazwyczaj najmniej istotna, to &amp;lt;b&amp;gt;wydajność&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;!--  Premature optimization is the root of all evil. --&amp;gt;&lt;br /&gt;
Jeśli mamy pomnożyć 100 elementów, to szybkość operacji na pojedynczym elemencie nie ma znaczenia. Podobnie jest z rozmiarem pojedynczego elementu. Jeśli elementów jest 10&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;, to również wtedy narzut nie ma większego znaczenia. Policzmy: 1000000 razy 12 bajtów, to 12 MB. Typowy komputer ma obecnie 1-4 GB pamięci, czyli używamy od 1,2% do 0,27% dostępnej pamięci — jaki problem? Dopiero gdy miejsce zajmowane przez dane jest tego samego rzędu co całość dostępnej pamięci, to czy pojedyncza komórka zajmuje 8 czy 16 bajtów, zaczyna mieć znaczenie.&lt;br /&gt;
&lt;br /&gt;
Druga przyczyna, istotna ze względu na przyjemność pracy, to &amp;lt;b&amp;gt;notacja&amp;lt;/b&amp;gt; obiektowa i infixowa.&lt;br /&gt;
Ta pierwsza to oczywiście „notacja z kropką” — dostęp do metod i atrybutów na obiekcie. Jej użycie, zwłaszcza w połączeniu z dopełnieniem TAB-em upraszcza pisanie.&lt;br /&gt;
Przykład notacji obiektowej:&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
a.transpose().min()&lt;br /&gt;
# zamiast&lt;br /&gt;
numpy.min(numpy.transpose(a))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ta druga (infixowa) to stara dobra „notacja matematyczna” — umiejscowienie operatorów dwuargumentowych pomiędzy obiektami na które działają.&lt;br /&gt;
Przykład notacji infixowej:&lt;br /&gt;
&amp;lt;source lang= python&amp;gt;&lt;br /&gt;
a + b*c&lt;br /&gt;
# zamiast&lt;br /&gt;
numpy.add(a, numpy.multiply(b, c))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście notacja obiektowa i infixowa jest używane wszędzie w Pythonie, ale warto wspomnieć, że Numpy od niej nie odchodzi. &lt;br /&gt;
Niemniej Numpy odchodzi od Pythonowej interpretacji niektórych działań. W Pythonie takie operacje jak mnożenie list wywodzą się z działań na ciągach znaków. W obliczeniach numerycznych podstawą są działania na elementach, tak więc w Numpy wszystkie operatory domyślnie działają na indywidualnych parach elementów.&lt;br /&gt;
&lt;br /&gt;
Trzecia przyczyna, chyba najważniejsza, to &amp;lt;b&amp;gt;biblioteka funkcji numerycznych&amp;lt;/b&amp;gt;. Odejście od obiektowości danych pozwala na eksport wartości i komunikację z bibliotekami napisanymi w zupełnie innych językach programowania. Na przykład Scipy może korzystać z biblioteki [http://www.netlib.org/lapack/ LAPACK] (Linear Algebra PACKage, napisanej w Fortranie 77). To że funkcje napisane w różnych językach mogą wymieniać się danymi w pamięci bez skomplikowanego tłumaczenia danych, wynika z faktu, że tak jak to w poprzednim podrozdziale było opisane, ostatecznie wszystkie liczby są w formacie akceptowanym przez procesor.&lt;br /&gt;
&lt;br /&gt;
Możliwość użycia kodu napisanego w C czy Fortranie pozwala na wykorzystanie starych, zoptymalizowanych, sprawdzonych rozwiązań.&lt;br /&gt;
&lt;br /&gt;
;Podsumowanie&lt;br /&gt;
&lt;br /&gt;
Normalnie programista Pythona takie detale, jak ile bitów ma zajmować zmienna, pozostawia całkowicie w gestii interpretera. Niemniej w przypadku obliczeń numerycznych często potrzebna jest silniejsza kontrola. Numpy daje możliwość dokładnej kontroli formatu danych, czyli odejście od pomocniczości powszechnej w Pythonie, pozwalając jednocześnie na gładkie łączenie obliczeń na macierzach z Numpy i normalnych obiektach pythonowych.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
http://groups.google.com/group/comp.lang.python/browse_frm/thread/b33dbedd335e25d2?hl=en&amp;amp;rnum=1&amp;amp;prev=/groups?as_ugroup=comp.lang.python&amp;amp;as_usubject=data%20size&amp;amp;as_scoring=d&amp;amp;hl=en&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zadanka ==&lt;br /&gt;
Zob. zadania z [[TI/Operacje na macierzach|operacji na macierzach]].&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>