NumPyé åæäœã®å æ¬çãªã¬ã€ããæ°åŠçèšç®ã«ããããã®åãã°ããŒãã«ãªèŠç¹ããæ¢æ±ããŸããåºç€æäœãé«åºŠãªãã¯ããã¯ãå®è·µçãªå¿çšãåŠã³ãŸãããã
NumPyé åæäœã®ç¿åŸïŒæ°åŠçèšç®ã®ååå
ããŒã¿ãµã€ãšã³ã¹ãç§åŠèšç®ã人工ç¥èœã®åºå€§ãã€æ¥éã«é²åããåéã«ãããŠãå¹ççã§å ç¢ãªæ°åŠçèšç®ãå®è¡ããèœåã¯æãéèŠã§ããå€ãã®PythonããŒã¹ã®æ°å€èšç®ã®åãçµã¿ã®äžå¿ã«ã¯ãæ°å€æŒç®ã®ããã®åºç€ã©ã€ãã©ãªã§ããNumPyããããŸããNumPyã®ã³ã¢ããŒã¿æ§é ã§ããndarrayïŒN次å é åïŒã¯ã髿§èœãªé åæäœãšæ°åŠçæŒç®ã®ããã«èšèšãããŠãããäžçäžã®ãããã§ãã·ã§ãã«ã«ãšã£ãŠäžå¯æ¬ ãªããŒã«ãšãªã£ãŠããŸãã
ãã®å æ¬çãªããã°æçš¿ã§ã¯ãNumPyé åæäœãæ·±ãæãäžãã倿§ãªèæ¯ãæåãå°éççµéšãæã€å人ã«åããŠã°ããŒãã«ãªèŠç¹ãæäŸããŸããåºç€çãªæŠå¿µãé«åºŠãªãã¯ããã¯ãããã³å®è·µçãªå¿çšãæ¢æ±ããNumPyã®åã广çã«æŽ»çšããããã®ç¥èã身ã«ã€ããŠããã ããŸãã
æ°åŠçèšç®ã«NumPyã䜿çšããçç±
å ·äœçãªæäœã«å ¥ãåã«ããªãNumPyãPythonã§ã®æ°å€èšç®ã®ããã¡ã¯ãã¹ã¿ã³ããŒãã«ãªã£ãã®ããçè§£ããããšãéèŠã§ãã
- ããã©ãŒãã³ã¹ïŒNumPyé åã¯Cèšèªã§å®è£ ãããŠãããæ°å€æŒç®ã«ãããŠPythonã®çµã¿èŸŒã¿ãªã¹ããããå€§å¹ ã«é«éã§ãããã®ããã©ãŒãã³ã¹åäžã¯ãæ©æ¢°åŠç¿ãç§åŠã·ãã¥ã¬ãŒã·ã§ã³ãªã©ã®åéã§äžè¬çãªå€§èŠæš¡ããŒã¿ã»ãããåŠçããäžã§äžå¯æ¬ ã§ãã
- ã¡ã¢ãªå¹çïŒNumPyé åã¯åçš®ã®ããŒã¿åãæ ŒçŽãããããç°ãªãåã®èŠçŽ ãä¿æã§ããPythonãªã¹ããšæ¯èŒããŠãããã³ã³ãã¯ããªã¡ã¢ãªäœ¿çšãå¯èœã§ãã
- å©äŸ¿æ§ïŒNumPyã¯ãè€éãªæ°å€ã¿ã¹ã¯ãç°¡çŽ åããè±å¯ãªæ°åŠé¢æ°ãšé åæäœæ©èœãæäŸããŸãã
- ãšã³ã·ã¹ãã çµ±åïŒNumPyã¯ãSciPyãPandasãMatplotlibãScikit-learnãTensorFlowãå«ãå€ãã®åŒ·åãªPythonã©ã€ãã©ãªã®åºç€ãšãªã£ãŠããŸãããããã®ããŒã«ã广çã«äœ¿çšããããã«ã¯ãNumPyã®ç¿çãäžå¯æ¬ ã§ãã
NumPy ndarrayã®çè§£
ndarrayã¯NumPyã®äžå¿çãªãªããžã§ã¯ãã§ããããã¯ãåãåã®ã¢ã€ãã ã®å€æ¬¡å é åã§ããndarrayã®äž»ãªç¹åŸŽã¯æ¬¡ã®ãšããã§ãã
- åœ¢ç¶ (Shape)ïŒé åã®æ¬¡å ã衚ãã¿ãã«ïŒäŸïŒ3x4è¡åã®å Žåã¯(3, 4)ïŒã
- ããŒã¿å (dtype)ïŒé
åã«æ ŒçŽãããèŠçŽ ã®åïŒäŸïŒ
int64ãfloat64ãboolïŒã - 軞 (Axes)ïŒé åã®æ¬¡å ã1Dé åã«ã¯1ã€ã®è»žãããã2Dé åã«ã¯2ã€ã®è»žããããŸãã
NumPyé åã®äœæ
NumPyé åãäœæããæ¹æ³ã¯ããã€ããããŸããäžè¬çãªãã®ãããã€ã玹ä»ããŸãã
Pythonãªã¹ãããïŒ
import numpy as np
# 1D array
list_1d = [1, 2, 3, 4, 5]
arr_1d = np.array(list_1d)
print(arr_1d)
# 2D array
list_2d = [[1, 2, 3], [4, 5, 6]]
arr_2d = np.array(list_2d)
print(arr_2d)
NumPyã®çµã¿èŸŒã¿é¢æ°ã䜿çšïŒ
# Array of zeros
arr_zeros = np.zeros((3, 4)) # Creates a 3x4 array filled with zeros
print(arr_zeros)
# Array of ones
arr_ones = np.ones((2, 3)) # Creates a 2x3 array filled with ones
print(arr_ones)
# Array with a specific value
arr_full = np.full((2, 2), 7) # Creates a 2x2 array filled with 7
print(arr_full)
# Identity matrix
arr_identity = np.eye(3) # Creates a 3x3 identity matrix
print(arr_identity)
# Array with a range of values
arr_range = np.arange(0, 10, 2) # Creates an array from 0 to 10 (exclusive) with step 2
print(arr_range)
# Array with evenly spaced values
arr_linspace = np.linspace(0, 1, 5) # Creates 5 evenly spaced values between 0 and 1 (inclusive)
print(arr_linspace)
åºæ¬çãªé åæäœ
NumPyã¯ãé åå šäœã«ããã£ãŠèŠçŽ ããšã®æäœãå®è¡ããã®ã«åªããŠããŸããããã¯ããã®å¹çæ§ãæ¯ããåºæ¬çãªæŠå¿µã§ãã
èŠçŽ ããšã®ç®è¡æŒç®
åã圢ç¶ã®2ã€ã®NumPyé åéã§ç®è¡æŒç®ãå®è¡ãããšããã®æäœã¯å¯Ÿå¿ããåèŠçŽ ã«é©çšãããŸãã
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# Addition
print(arr1 + arr2) # Output: [5 7 9]
# Subtraction
print(arr1 - arr2) # Output: [-3 -3 -3]
# Multiplication
print(arr1 * arr2) # Output: [ 4 10 18]
# Division
print(arr1 / arr2) # Output: [0.25 0.4 0.5 ]
# Modulo
print(arr1 % arr2) # Output: [1 2 3]
# Exponentiation
print(arr1 ** 2) # Output: [1 4 9] (operating on a single array)
ã¹ã«ã©ãŒæŒç®ïŒé åãšåäžã®ã¹ã«ã©ãŒå€ã®éã§æäœãå®è¡ããããšãã§ããŸããã¹ã«ã©ãŒå€ã¯é åã®åœ¢ç¶ã«åãããŠãããŒããã£ã¹ããããŸãã
import numpy as np
arr = np.array([1, 2, 3])
scalar = 5
print(arr + scalar) # Output: [6 7 8]
print(arr * scalar) # Output: [ 5 10 15]
ãŠãããŒãµã«é¢æ° (ufuncs)
NumPyã®ãŠãããŒãµã«é¢æ°ïŒufuncsïŒã¯ãé åå šäœã«èŠçŽ ããšã®é¢æ°ãé©çšãããã¯ãã«åãããæäœã§ãããããã¯é床ã®ããã«é«åºŠã«æé©åãããŠããŸãã
äŸïŒ
import numpy as np
arr = np.array([0, np.pi/2, np.pi])
# Sine function
print(np.sin(arr))
# Exponential function
print(np.exp(arr))
# Square root
print(np.sqrt([1, 4, 9]))
# Logarithm
print(np.log([1, np.e, np.e**2]))
NumPyã¯ãäžè§é¢æ°ãææ°é¢æ°ã察æ°é¢æ°ããã®ä»ã®æ°åŠçæŒç®ã®ããã®å¹ åºãufuncsãæäŸããŸããå®å šãªãªã¹ãã«ã€ããŠã¯ãNumPyããã¥ã¡ã³ããåç §ããŠãã ããã
é åæäœïŒã¹ã©ã€ã·ã³ã°ãšã€ã³ããã¯ã¹äœæ
é åã®äžéšã«å¹ççã«ã¢ã¯ã»ã¹ããŠå€æŽããããšã¯éåžžã«éèŠã§ããNumPyã¯åŒ·åãªã¹ã©ã€ã·ã³ã°ããã³ã€ã³ããã¯ã¹äœææ©èœãæäŸããŸãã
åºæ¬çãªã€ã³ããã¯ã¹äœæãšã¹ã©ã€ã·ã³ã°
Pythonãªã¹ããšåæ§ã«ãã€ã³ããã¯ã¹ã䜿çšããŠèŠçŽ ã«ã¢ã¯ã»ã¹ã§ããŸãã倿¬¡å é åã®å Žåã¯ã忬¡å ã«ã³ã³ãåºåãã®ã€ã³ããã¯ã¹ã䜿çšããŸãã
import numpy as np
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Accessing an element (row 1, column 2)
print(arr_2d[1, 2]) # Output: 6
# Accessing a row
print(arr_2d[0, :]) # Output: [1 2 3] (all columns in row 0)
# Accessing a column
print(arr_2d[:, 1]) # Output: [2 5 8] (all rows in column 1)
ã¹ã©ã€ã·ã³ã°ïŒã¹ã©ã€ã·ã³ã°ã«ã¯ãèŠçŽ ã®ç¯å²ãéžæããããšãå«ãŸããŸããæ§æã¯start:stop:stepã§ããstartãŸãã¯stopãçç¥ãããå Žåãããããæ¬¡å
ã®æåãŸãã¯æåŸã«ããã©ã«ãèšå®ãããŸãã
import numpy as np
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Slice a sub-array (rows 0 to 1, columns 1 to 2)
print(arr_2d[0:2, 1:3])
# Output:
# [[2 3]
# [5 6]]
# Slice the first two rows
print(arr_2d[0:2, :])
# Output:
# [[1 2 3]
# [4 5 6]]
ããŒã«ã€ã³ããã¯ã¹äœæ
ããŒã«ã€ã³ããã¯ã¹äœæã䜿çšãããšãæ¡ä»¶ã«åºã¥ããŠèŠçŽ ãéžæã§ããŸããããŒã¿é
åãšåã圢ç¶ã®ããŒã«é
åãäœæããTrueã¯éžæããèŠçŽ ã瀺ããFalseã¯é€å€ããèŠçŽ ã瀺ããŸãã
import numpy as np
arr = np.array([10, 25, 8, 40, 15])
# Create a boolean array where elements are greater than 20
condition = arr > 20
print(condition) # Output: [False True False True False]
# Use the boolean array to select elements
print(arr[condition]) # Output: [25 40]
# Directly apply a condition
print(arr[arr % 2 == 0]) # Select even numbers: Output: [10 8 40]
ããŒã«ã€ã³ããã¯ã¹äœæã¯ãç¹å®ã®åºæºã«åºã¥ããŠããŒã¿ããã£ã«ã¿ãªã³ã°ããã®ã«éåžžã«åŒ·åã§ãã
ãã¡ã³ã·ãŒã€ã³ããã¯ã¹äœæ
ãã¡ã³ã·ãŒã€ã³ããã¯ã¹äœæã¯ãæŽæ°ã®é åã䜿çšããŠå¥ã®é åãã€ã³ããã¯ã¹ä»ãããŸããããã«ãããéé£ç¶ãªé åºã§èŠçŽ ãéžæã§ããŸãã
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
# Select elements at specific indices
indices = np.array([1, 3, 5])
print(arr[indices]) # Output: [2 4 6]
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Select specific rows and columns using fancy indexing
# Select elements at (0,1), (1,0), (2,2)
print(arr_2d[[0, 1, 2], [1, 0, 2]]) # Output: [2 4 9]
ãããŒããã£ã¹ãã£ã³ã°
ãããŒããã£ã¹ãã£ã³ã°ã¯NumPyã®åŒ·åãªã¡ã«ããºã ã§ãããç°ãªã圢ç¶ã®é åãç®è¡æŒç®ã§äœ¿çšãããããšãå¯èœã«ããŸããNumPyãæŒç®äžã«ç°ãªã圢ç¶ã®é åã«ééãããšãäºææ§ã®ãã圢ç¶ãæã€ããã«ãå°ããæ¹ã®é åã倧ããæ¹ã®é åå šäœã«ããããŒããã£ã¹ããããããšããŸããããã«ãããããŒã¿ãæç€ºçã«è€è£œããå¿ èŠããªããªããã¡ã¢ãªãšèšç®ãç¯çŽã§ããŸãã
ãããŒããã£ã¹ãã£ã³ã°èŠåïŒ
- 2ã€ã®é åã®æ¬¡å ãç°ãªãå Žåãæ¬¡å ãå°ãªãæ¹ã®åœ¢ç¶ã¯ããã®å é ïŒå·ŠïŒåŽã«1ãããã£ã³ã°ãããŸãã
- 2ã€ã®é åã®åœ¢ç¶ãã©ã®æ¬¡å ã§ãäžèŽããªãå Žåããã®æ¬¡å ã§åœ¢ç¶ã1ã®é åã¯ãä»ã®åœ¢ç¶ã«äžèŽããããã«åŒã䌞ã°ãããŸãã
- ããããã®æ¬¡å ã§ãµã€ãºãäžäžèŽã§ããããã€ã©ã¡ãã1ã§ã¯ãªãå Žåããšã©ãŒãçºçããŸãã
äŸïŒ
import numpy as np
# Array A (3x1)
arr_a = np.array([[1], [2], [3]])
# Array B (1x3)
arr_b = np.array([[4, 5, 6]])
# Broadcasting A and B
result = arr_a + arr_b
print(result)
# Output:
# [[5 6 7]
# [6 7 8]
# [7 8 9]]
# Here, arr_a (3x1) is broadcasted to 3x3 by repeating its columns.
# arr_b (1x3) is broadcasted to 3x3 by repeating its rows.
ãããŒããã£ã¹ãã£ã³ã°ã¯ãç¹ã«è¡åããã¯ãã«ãå«ãæäœãæ±ãéã«ãNumPyã®å¹çæ§ãšè¡šçŸåã®èŠã§ãã
éçŽæäœ
NumPyã¯ãé åèŠçŽ ã«å¯ŸããéçŽçµ±èšãèšç®ãã颿°ãæäŸããŸãã
åèš
np.sum()颿°ã¯ãé
åèŠçŽ ã®åèšãèšç®ããŸãã
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# Sum of all elements
print(np.sum(arr)) # Output: 21
# Sum along axis 0 (columns)
print(np.sum(arr, axis=0)) # Output: [5 7 9]
# Sum along axis 1 (rows)
print(np.sum(arr, axis=1)) # Output: [ 6 15]
ãã®ä»ã®éçŽé¢æ°
ä»ã®éçŽã«ãåæ§ã®é¢æ°ãååšããŸãã
np.mean()ïŒå¹³åãèšç®ããŸããnp.median()ïŒäžå€®å€ãèšç®ããŸããnp.min()ïŒæå°å€ãæ€çŽ¢ããŸããnp.max()ïŒæå€§å€ãæ€çŽ¢ããŸããnp.std()ïŒæšæºåå·®ãèšç®ããŸããnp.var()ïŒåæ£ãèšç®ããŸãã
ãããã®é¢æ°ã¯ãç¹å®ã®æ¬¡å
ã«æ²¿ã£ãŠéçŽãèšç®ããããã«axisåŒæ°ãåãããšãã§ããŸãã
ç·åœ¢ä»£æ°æŒç®
NumPyã®linalgãµãã¢ãžã¥ãŒã«ã¯ãå€ãã®ç§åŠæè¡èšç®ã¢ããªã±ãŒã·ã§ã³ã«äžå¯æ¬ ãªç·åœ¢ä»£æ°æŒç®ã®ããã®åŒ·åãªããŒã«ãããã§ãã
è¡åä¹ç®
è¡åä¹ç®ã¯åºæ¬çãªæäœã§ããNumPyã§ã¯ã@æŒç®åïŒPython 3.5+ïŒãŸãã¯np.dot()颿°ã䜿çšã§ããŸãã
import numpy as np
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
# Using the @ operator
result_at = matrix1 @ matrix2
print(result_at)
# Using np.dot()
result_dot = np.dot(matrix1, matrix2)
print(result_dot)
# Output for both:
# [[19 22]
# [43 50]]
è¡åã®éè¡å
np.linalg.inv()ã¯æ£æ¹è¡åã®éè¡åãèšç®ããŸãã
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
inverse_matrix = np.linalg.inv(matrix)
print(inverse_matrix)
# Output:
# [[-2. 1. ]
# [ 1.5 -0.5]]
è¡ååŒ
np.linalg.det()ã¯æ£æ¹è¡åã®è¡ååŒãèšç®ããŸãã
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
determinant = np.linalg.det(matrix)
print(determinant) # Output: -2.0
åºæå€ãšåºæãã¯ãã«
np.linalg.eig()ã¯æ£æ¹è¡åã®åºæå€ãšåºæãã¯ãã«ãèšç®ããŸãã
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = np.linalg.eig(matrix)
print("Eigenvalues:", eigenvalues)
print("Eigenvectors:", eigenvectors)
NumPyã®ç·åœ¢ä»£æ°æ©èœã¯åºç¯ã§ãããé£ç«äžæ¬¡æ¹çšåŒã®è§£æ³ãç¹ç°å€åè§£ïŒSVDïŒãªã©ã®æäœãã«ããŒããŠããŸãããããã¯ãç©çåŠãå·¥åŠãçµæžåŠãæ©æ¢°åŠç¿ãªã©ã®åéã§äžå¯æ¬ ã§ãã
NumPyã®å®è·µçãªã°ããŒãã«å¿çš
NumPyã®æäœã¯ãå¹ åºãã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³ã®åºç€ãšãªããŸãã
- ç»ååŠçïŒç»åã¯ãã°ãã°NumPyé åãšããŠè¡šçŸãããŸãïŒäŸïŒã°ã¬ãŒã¹ã±ãŒã«ç»åã¯2Dé åãã«ã©ãŒç»åã¯3Dé åïŒããµã€ãºå€æŽãããªãã³ã°ããã£ã«ã¿ãªã³ã°ãè²æäœãªã©ã®æäœã¯ãé åæäœã䜿çšããŠå®è¡ãããŸããããšãã°ãç»åã«ã¬ãŠã¹ãŒãããé©çšããã«ã¯ãç»åé åãã«ãŒãã«é åãšç³ã¿èŸŒãå¿ èŠããããŸãã
- ä¿¡å·åŠçïŒãªãŒãã£ãªä¿¡å·ãã»ã³ãµãŒããŒã¿ããã®ä»ã®æç³»åããŒã¿ã¯ãNumPyé åãšããŠä¿åããã³åŠçãããããšããããããŸããåšæ³¢æ°è§£æããã€ãºé€å»ããã¿ãŒã³æ€åºã®ããã®é«éããŒãªãšå€æïŒFFTïŒãªã©ã®ææ³ã¯ãNumPyã®æ°å€é¢æ°ãšç·åœ¢ä»£æ°é¢æ°ã«å€§ããäŸåããŠããŸãã
- æ©æ¢°åŠç¿ïŒãã¥ãŒã©ã«ãããã¯ãŒã¯ã®ãã¬ãŒãã³ã°ããã¬ã³ã¡ã³ããŒã·ã§ã³ã·ã¹ãã ã®æ§ç¯ãŸã§ãNumPyã¯äž»åã§ãããã¥ãŒã©ã«ãããã¯ãŒã¯ã®éã¿ãšãã€ã¢ã¹ã¯é åãšããŠè¡šçŸãããè¡åä¹ç®ã掻æ§å颿°ãªã©ã®æäœã¯NumPyã䜿çšããŠå®è£ ãããŸããTensorFlowãPyTorchãªã©ã®ã©ã€ãã©ãªã¯NumPyã®åºç€ã®äžã«æ§ç¯ãããŠããŸããã°ããŒãã«ã«åçŽãªç·åœ¢ååž°ã¢ãã«ããã¬ãŒãã³ã°ããããšãèããŠã¿ãŠãã ãããç¹åŸŽè¡åïŒXïŒãšã¿ãŒã²ãããã¯ãã«ïŒyïŒã¯NumPyé åã§ãããã¢ãã«ãã©ã¡ãŒã¿ãŒïŒä¿æ°ïŒã¯è¡åæŒç®ã䜿çšããŠèšç®ãããŸãã
- ç§åŠã·ãã¥ã¬ãŒã·ã§ã³ïŒäžçäžã®ç ç©¶è ãNumPyã䜿çšããŠãç©ççŸè±¡ãååŠåå¿ãæµäœååŠãªã©ãã·ãã¥ã¬ãŒãããŠããŸããããšãã°ãåååååŠã¢ãã«ã§ç²åã®åããã·ãã¥ã¬ãŒãããå Žåãåæéã¹ãããã§ãNumPyæäœã«å€æãããç©çæ¹çšåŒã䜿çšããŠãåç²åïŒé åã«æ ŒçŽãããŠããïŒã®äœçœ®ãšéåºŠãæŽæ°ããŸãã
- 財åã¢ããªã³ã°ïŒæ ªåŒåžå ŽããŒã¿ã®åæãããŒããã©ãªãªãªã¹ã¯ã®èšç®ãååŒã¢ã«ãŽãªãºã ã®éçºã«ã¯ãNumPyé åãšããŠè¡šãããå€§èŠæš¡ãªããŒã¿ã»ããããã°ãã°å«ãŸããŸããç§»åå¹³åããã©ãã£ãªãã£ãçžé¢é¢ä¿ã®èšç®ãªã©ã®æäœã¯ãæšæºçãªNumPyã¿ã¹ã¯ã§ãã
ã°ããŒãã«NumPyãŠãŒã¶ãŒã®ããã®ãã¹ããã©ã¯ãã£ã¹
NumPyé åãæ±ãéã®å¹çãæå€§åããäžè¬çãªèœãšã穎ãé¿ããããã«ãç¹ã«ã°ããŒãã«ãªã³ã³ããã¹ãã§ã¯ã以äžã®ç¹ã«æ³šæããŠãã ããã
- ããŒã¿åïŒdtypesïŒãçè§£ããïŒé
åã®
dtypeã«ã¯åžžã«æ³šæããŠãã ãããæãé©åãªdtypeã䜿çšããããšïŒäŸïŒç²ŸåºŠãæéèŠã§ãªãå Žåã¯float64ã§ã¯ãªãfloat32ïŒã¯ãã°ããŒãã«èŠæš¡ã®ãããžã§ã¯ãã§äžè¬çãªå·šå€§ãªããŒã¿ã»ããã®å Žåã«ã¡ã¢ãªãç¯çŽããããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã - ã³ãŒãããã¯ãã«åããïŒå¯èœãªéããæç€ºçãªPythonã«ãŒããé¿ããŠãã ãããNumPyã®åŒ·ã¿ã¯ãã¯ãã«åãããæäœã«ãããŸããã«ãŒããé åæäœã«å€æããããšã§ãå€§å¹ ãªé«éåãå®çŸã§ããŸããããã¯ãç°ãªãã¿ã€ã ãŸãŒã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ãæã€ããŒã ãšååããéã«éåžžã«éèŠã§ãã
- ãããŒããã£ã¹ãã£ã³ã°ã掻çšããïŒç°ãªããäºææ§ã®ãã圢ç¶ã®é åãæ±ãéã«ãã³ãŒããç°¡çŽ åãå¹çãåäžãããããã«ãããŒããã£ã¹ãã£ã³ã°ãçè§£ãæŽ»çšããŠãã ããã
np.arangeãšnp.linspaceãè³¢ã䜿çšããïŒã·ãŒã±ã³ã¹ãäœæããã«ã¯ãã¹ããããŸãã¯ç¹ã®æ°ãæå®ããããŒãºã«æé©ãªé¢æ°ãéžæããŠãã ããã- æµ®åå°æ°ç¹ç²ŸåºŠã®èªèïŒæµ®åå°æ°ç¹æ°ãæ¯èŒããéã«ã¯ãçŽæ¥çãªç䟡æ§ãã§ãã¯ïŒäŸïŒ
a == bïŒãé¿ããŠãã ããã代ããã«ã蚱容誀差ãèæ ®ã§ããnp.isclose(a, b)ã®ãããªé¢æ°ã䜿çšããŠãã ãããããã¯ãç°ãªãèšç®ç°å¢éã§åçŸå¯èœãªçµæãåŸãããã«äžå¯æ¬ ã§ãã - é©åãªã©ã€ãã©ãªãéžæããïŒNumPyã¯åºç€çã§ãããããè€éãªç§åŠèšç®ã¿ã¹ã¯ã«ã¯ãSciPyïŒæé©åãç©åãè£éïŒãPandasïŒããŒã¿æäœãšåæïŒãMatplotlib/SeabornïŒå¯èŠåïŒãªã©ãNumPyã®äžã«æ§ç¯ãããã©ã€ãã©ãªãæ¢çŽ¢ããŠãã ããã
- ã³ãŒããææžåããïŒç¹ã«åœéçãªããŒã ã§ã¯ãNumPyæäœã®æç¢ºã§ç°¡æœãªããã¥ã¡ã³ãã¯ãçè§£ãšååã®ããã«äžå¯æ¬ ã§ããé åæäœã®ç®çãšæåŸ ãããçµæã説æããŠãã ããã
çµè«
NumPyé åæäœã¯ãçŸä»£ã®ç§åŠèšç®ãšããŒã¿åæã®åºç€ã圢æããŸããåºæ¬çãªç®è¡æŒç®ããé«åºŠãªç·åœ¢ä»£æ°ããããŒããã£ã¹ãã£ã³ã°ãŸã§ãNumPyã¯åŒ·åã§å¹ççãã€å€ç®çãªããŒã«ããããæäŸããŸãããããã®æäœãç¿åŸããããšã§ã倿§ãªåéã«ãããè€éãªèšç®äžã®èª²é¡ã«åãçµã¿ãã°ããŒãã«ãªã€ãããŒã·ã§ã³ã«è²¢ç®ããåã身ã«ã€ããããšãã§ããŸãã
ããŒã¿ãµã€ãšã³ã¹ãåŠã¶åŠçãå®éšãè¡ãç ç©¶è ãã·ã¹ãã ãæ§ç¯ãããšã³ãžãã¢ãããŒã¿ãåæãããããã§ãã·ã§ãã«ã§ããããšãNumPyããã£ãããšçè§£ããããšã¯ã倧ããªãªã¿ãŒã³ãçã¿åºãæè³ãšãªããŸããNumPyã®åãæŽ»çšããèšç®ã®åãçµã¿ã«ãããæ°ããªå¯èœæ§ãè§£ãæŸã¡ãŸãããã