Numpy

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש
Numpy
NumPy logo 2020.svg
מפתח פותח במקור על ידי Travis Oliphant, כיום מפותח על ידי קהילת המתכנתים.
תאריך השקה

בתור Numeric - בשנת 1995.

בתור Numpy - בשנת 2006.
גרסה אחרונה 1.21.1‏ (18 ביולי 2021)
מערכת הפעלה תוכנה חוצה פלטפורמות
נכתבה בשפות Python, C
סוג רישיון BSD
קטגוריה אנליזה נומרית
https://numpy.org/

Numpy (בעברית: נָאמְפַּיְ) היא ספרית קוד בשפת התכנות פייתון, אשר מספקת תמיכה במערכים גדולים דו ממדים ובמטריצות, וכן מספקת מבחר גדול של פעולות מתמטיות שניתן לשלב איתם. Numeric, תוכנת האב של Numpy נוצרה בשנת 1995 על ידי מפתח התוכנה Jim Hugunin יחד עם עוד כמה תורמים, ו-Numpy עצמה פותחה בשנת 2005 על ידי Travis Oiphant. היא התבססה על Numeric וכן שילבה אלמנטים מהתוכנה המתחרה Numarray, בנוסף לשינויים רבים שנעשו. Numpy היא תוכנת קוד פתוח, בעלת משתתפים רבים בפיתוח. Numpy נחשבת לספריה יעילה ביותר, שכן היא תוכננה לחיסכון בצריכת זיכרון, ואף ממומשת חלקית ב-C, שידועה כשפת תכנות יעילה ומהירה.

היסטוריה

פיצ'רים

דוגמאות קוד

יצירת מערך

>>> import numpy as np
>>> x = np.array([1, 2, 3])
>>> x
array([1, 2, 3])
>>> y = np.arange(10) # like Python's list(range(10)), but returns an array
>>> y
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

פעולות בסיסיות

>>> a = np.array([1, 2, 3, 6])
>>> b = np.linspace(0, 2, 4) # create an array with four equally spaced points starting with 0 and ending with 2.
>>> c = a - b
>>> c
array([ 1.        ,  1.33333333,  1.66666667,  4.        ])
>>> a**2
array([ 1,  4,  9, 36])

פעולות אוניברסליות

>>> a = np.linspace(-np.pi, np.pi, 100)
>>> b = np.sin(a)
>>> c = np.cos(a)

אלגברה ליניארית

>>> from numpy.random import rand
>>> from numpy.linalg import solve, inv
>>> a = np.array([[1, 2, 3], [3, 4, 6.7], [5, 9.0, 5]])
>>> a.transpose()
array([[ 1., 3., 5. ],
  [ 2. ,  4. ,  9. ],
  [ 3. ,  6.7,  5. ]])
>>> inv(a)
array([[-2.27683616, 0.96045198, 0.07909605],
  [ 1.04519774, -0.56497175,  0.1299435 ],
  [ 0.39548023,  0.05649718, -0.11299435]])
>>> b = np.array([3, 2, 1])
>>> solve(a, b) # solve the equation ax = b
array([-4.83050847,  2.13559322,  1.18644068])
>>> c = rand(3, 3) * 20 # create a 3x3 random matrix of values within [0,1] scaled by 20
>>> c
array([[ 3.98732789, 2.47702609, 4.71167924],
  [  9.24410671,   5.5240412 ,  10.6468792 ],
  [ 10.38136661,   8.44968437,  15.17639591]])
>>> np.dot(a, c) # matrix multiplication
array([[ 53.61964114, 38.8741616, 71.53462537],
  [ 118.4935668 ,   86.14012835,  158.40440712],
  [ 155.04043289,  104.3499231 ,  195.26228855]])
>>> a @ c # Starting with Python 3.5 and NumPy 1.10
array([[ 53.61964114, 38.8741616, 71.53462537],
  [ 118.4935668 ,   86.14012835,  158.40440712],
  [ 155.04043289,  104.3499231 ,  195.26228855]])

שילוב עם ספרית OpenCV

>>> import numpy as np
>>> import cv2
>>> r = np.reshape(np.arange(256*256)%256,(256,256)) # 256x256 pixel array with a horizontal gradient from 0 to 255 for the red color channel
>>> g = np.zeros_like(r) # array of same size and type as r but filled with 0s for the green color channel
>>> b = r.T # transposed r will give a vertical gradient for the blue color channel
>>> cv2.imwrite('gradients.png', np.dstack([b,g,r])) # OpenCV images are interpreted as BGR, the depth-stacked array will be written to an 8bit RGB PNG-file called 'gradients.png'
True

קישורים חיצוניים

Green globe.svg אתר האינטרנט הרשמי של Numpy

ויקישיתוף מדיה וקבצים בנושא Numpy בוויקישיתוף
Crystal kpackage.png ערך זה הוא קצרמר בנושא תוכנה. אתם מוזמנים לתרום למכלול ולהרחיב אותו.


Logo hamichlol.png
הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0