DR. IGOR DATA SCIENCE AI, Data & Creativity · From Data to Impact
הרצאה 1 · נושא 1/10
אלגברה ליניארית למדעי הנתונים

וקטורים וסימונים

לפני שמדברים על מודלים, תמונות, טקסטים או סדרות זמן — צריך שפה אחת שמאפשרת לנו לייצג נתונים. השפה הזאת מתחילה בווקטור.

מתחילים לתרגול
x = [ 1
2
3
-3 ]
01

מהו וקטור?

הגדרה פורמלית, ואז מיד תרגום לשפה פשוטה.

הגדרה פורמלית

וקטור הוא רשימה סופית ומסודרת של מספרים

סופית — יש מספר מוגדר של איברים.
מסודרת — למיקום של כל מספר יש משמעות.

\[ x= \begin{bmatrix} 1\\ 2\\ 3\\ -3 \end{bmatrix} \]
שתי צורות כתיבה של אותו וקטור

כתיבה אנכית וכתיבה קומפקטית

\[ \begin{bmatrix} -1\\0.0\\3.5\\-1.2 \end{bmatrix} \]

שתי הכתיבות מתארות אותו וקטור מופשט; הן אינן שני וקטורים שונים.

חשוב: בשלב זה הכתיבה \( (-1,0.0,3.5,-1.2) \) היא כתיבה קומפקטית של וקטור, ולא מטריצת שורה. וקטור שורה אמיתי יופיע בהמשך באמצעות טרנספוזיציה:
\[ x^T= \begin{bmatrix} -1 & 0.0 & 3.5 & -1.2 \end{bmatrix}. \]
02

רכיבים וממד

כמה ערכים יש בווקטור, ומה הממד שלו?

איברי הווקטור

המספרים בתוך הווקטור נקראים איברים, ערכים או סקלרים.

מספר הרכיבים

\[\dim(x)=4\]

ממד הווקטור

בהקשר של הקורס נשתמש גם במונח ממד. וקטור עם \(N\) נקרא \(N\)-וקטור.

בווקטור \(x=(1,2,3,-3)\) יש בו ארבעה רכיבים, ולכן הוא וקטור ב־\(\mathbb{R}^4\).
03

סימון וקטורים ואינדקסים

איך מסמנים וקטור, ואיך ניגשים לאיבר מסוים?

סימון

אפשר לסמן וקטורים באותיות שונות

\[ a,\ A,\ b,\ B,\ x,\ X,\ w,\ \alpha,\ \beta \]

האיבר ה-\(i\) של הווקטור \(x\) מסומן \(x_i\).

\[x_1=1\]
האיבר הראשון בווקטור
במתמטיקה: האינדקסים מתחילים ב-\(1\) ומסתיימים בגודל הווקטור.
בפייתון: האינדקסים מתחילים ב-\(0\). לכן \(x_1\) המתמטי נמצא ב-x[0].
Python / NumPyמתמטיקה מול קוד
import numpy as np

x = np.array([1, 2, 3, -3])

print(x[0])   # 1  ← האיבר x₁ במתמטיקה
print(x[3])   # -3 ← האיבר x₄ במתמטיקה
04

שוויון בין וקטורים

שני תנאים חייבים להתקיים יחד.

\[ A=B \quad\Longleftrightarrow\quad \dim(A)=\dim(B) \ \land\ a_i=b_i,\quad \forall i=1,\ldots,n \]
תנאי 1: אותו מספר רכיבים.
תנאי 2: כל האיברים המתאימים שווים.

בדיקה מהירה

A = [1, 2, 3]
?
B = [1, 2, 3]
בחרו תשובה.
05

תת־וקטור

בחירה של קטע רציף מתוך וקטור גדול יותר.

הדוגמה המתמטית

\[ x= \begin{bmatrix} 1\\2\\10\\20\\50\\70 \end{bmatrix} \qquad x_{2:4}= \begin{bmatrix} 2\\10\\20 \end{bmatrix} \]

בכתיב המתמטי כאן נבחרים האיברים ממקום 2 עד מקום 4, כולל.

Python / NumPyשימו לב לקצה הימני
x = np.array([1, 2, 10, 20, 50, 70])

subvector = x[1:4]

print(subvector)
# [ 2 10 20 ]
טעות נפוצה: בפייתון הטווח 1:4 כולל את האינדקסים 1, 2, 3, אבל לא את 4.
06

וקטור של בלוקים

מחברים כמה וקטורים לווקטור אחד ארוך.

\[ X= \begin{bmatrix} B\\C\\D \end{bmatrix}, \qquad \dim(B)=M,\ \dim(C)=N,\ \dim(D)=P \] \[ \dim(X)=M+N+P \]

הסדר חשוב: תחילה כל איברי \(B\), אחריהם איברי \(C\), ולבסוף איברי \(D\).

B · ממד M
C · ממד N
D · ממד P
X · ממד M+N+P
דוגמה 1 · נתוני מטופל

מחברים קבוצות מאפיינים לווקטור אחד

לפעמים הנתונים מגיעים בקבוצות טבעיות: גיל ומין, בדיקות דם, וסימפטומים. מודל חישובי רוצה וקטור אחד ארוך, אבל לנו חשוב לזכור מאיזה בלוק כל רכיב הגיע.

\[ d=(\text{age},\text{sex}),\qquad b=(\text{glucose},\text{cholesterol},\text{hemoglobin}) \] \[ s=(s_1,\ldots,s_{20}),\qquad x=(d,b,s) \] \[ \dim(x)=2+3+20=25 \]
מתי זה נוח? כשבונים feature vector למודל, ורוצים לשמור בראש את המבנה: דמוגרפיה, בדיקות, סימפטומים.
דוגמה 2 · סדרת זמן לפי ימים

שבוע כשרשור של שבעה ימים

אם \(d_1,\ldots,d_7\) הם וקטורים של 24 שעות, אפשר לכתוב את כל השבוע כווקטור אחד עם 168 רכיבים.

\[ d_j=(w_{24j-23},\ldots,w_{24j}),\qquad j=1,\ldots,7 \] \[ w=(d_1,d_2,d_3,d_4,d_5,d_6,d_7) \] \[ \dim(w)=7\cdot24=168 \]
מתי זה נוח? כשיש מבנה חוזר: שעות בתוך יום, ימים בתוך שבוע, או בלוקים שונים של אותו ניסוי.
הרעיון המרכזי: וקטור של בלוקים הוא עדיין וקטור אחד. הבלוקים הם דרך נוחה לארגן את המחשבה, לבדוק ממדים, ולחלץ אחר כך חלקים בעזרת slicing.
NumPyבניית וקטור של בלוקים
B = np.array([1, 2])
C = np.array([10, 20, 30])
D = np.array([7])

X = np.concatenate([B, C, D])

print(X)
# [ 1  2 10 20 30  7 ]

# חילוץ חזרה של הבלוקים
B_back = X[:2]
C_back = X[2:5]
D_back = X[5:]

print(B_back, C_back, D_back)
# [1 2] [10 20 30] [7]
07

וקטורים מיוחדים

ארבע משפחות שחוזרות שוב ושוב באלגברה ליניארית ובמדעי הנתונים.

וקטור אפסים

מכיל רק אפסים ומסומן \(0_n\), או פשוט \(0\) כאשר הממד ברור.

\[ 0_3= \begin{bmatrix} 0\\0\\0 \end{bmatrix} \]
[ 0, 0, 0 ]

וקטור אחדים

מכיל רק את המספר \(1\) ומסומן \(1_n\).

\[ 1_3= \begin{bmatrix} 1\\1\\1 \end{bmatrix} \]
[ 1, 1, 1 ]

וקטור היחידה \(e_i\)

במקום ה-\(i\) יש \(1\), ובכל שאר המקומות יש \(0\).

\[ e_1= \begin{bmatrix}1\\0\\0\end{bmatrix}, \quad e_2= \begin{bmatrix}0\\1\\0\end{bmatrix}, \quad e_3= \begin{bmatrix}0\\0\\1\end{bmatrix} \]
e₂ = [ 0, 1, 0 ]

וקטור דליל

וקטור שרוב איבריו שווים ל-\(0\).

\(NNZ(x)\) הוא מספר האיברים ב-\(x\) שאינם אפס.

\[ x=(0,0,5,0,0,-2,0) \qquad\Longrightarrow\qquad NNZ(x)=2 \]
[ 0, 0, 5, 0, 0, -2, 0 ]
NumPyיצירת וקטורים מיוחדים
zeros = np.zeros(3)
ones  = np.ones(3)

e2 = np.zeros(3)
e2[1] = 1

x = np.array([0, 0, 5, 0, 0, -2, 0])
nnz = np.count_nonzero(x)
08

תרגול קצר

לא רק לקרוא — לבדוק שהסימונים באמת ברורים.

משימה 1

\[ x=(4,0,-2,0,0,7) \]

מצאו:

  1. את ממד הווקטור.
  2. את \(NNZ(x)\).
  3. את \(x_{2:5}\) לפי הסימון המתמטי של הקורס.
\[ \dim(x)=6,\qquad NNZ(x)=3,\qquad x_{2:5}=(0,-2,0,0) \]

משימה 2

האם הווקטורים הבאים שווים?

\[ A=(1,2,3),\qquad B=(1,2,3,0) \]

לא. גם אם שלושת האיברים הראשונים זהים, הממדים שונים: \(\dim(A)=3\) ואילו \(\dim(B)=4\).

09

Take-home message

מה חייבים לזכור אחרי הנושא הזה?

1וקטור הוא רשימה סופית ומסודרת של מספרים.
2מספר הרכיבים הוא מספר הערכים או ממדו.
3במתמטיקה האינדקס מתחיל ב-\(1\), ובפייתון ב-\(0\).
4שוויון דורש אותו מספר רכיבים ושוויון בכל האיברים המתאימים.
5תת־וקטור הוא בחירה של חלק מהווקטור.
6וקטורי אפסים, אחדים, יחידה ודלילים הם אבני יסוד בקורס.

מפת כיסוי של חומר המקור

בקרה מפורשת: שום חומר מהשקופיות 1–12 לא הושמט.

שקופית מקור נושא מיקום ב-HTML
1כותרת הקורס והנושאHero
2הגדרת וקטור; כתיבה אנכית וכתיבה קומפקטית של אותו וקטורמהו וקטור?
3איברים, ערכים, סקלרים, רכיבים וממדרכיבים וממד
4\(N\)-וקטור וסימוניםסימון וקטורים ואינדקסים
5\(x_i\) והבדל בין מתמטיקה לפייתוןסימון וקטורים ואינדקסים + קוד
6שוויון בין וקטוריםשוויון בין וקטורים
7תת־וקטורתת־וקטור + NumPy
8וקטור של בלוקיםוקטור של בלוקים + concatenate
9וקטור אפסיםוקטורים מיוחדים
10וקטור אחדיםוקטורים מיוחדים
11וקטורי היחידה \(e_i\)וקטורים מיוחדים
12וקטור דליל ו-\(NNZ\)וקטורים מיוחדים + תרגול