NumPy(NumPy)는 Python의 과학 컴퓨팅을 위한 기본 라이브러리입니다. 대규모 다차원 배열 및 행렬에 대한 지원을 추가하고 이러한 배열에서 효율적으로 작동할 수 있는 광범위한 수학적 함수 컬렉션을 추가합니다. NumPy는 데이터 분석, 머신러닝, 딥러닝, 수치계산 등에 널리 사용됩니다.
NumPy를 사용하기 전에 라이브러리를 Python 환경으로 가져와야 합니다.
import numpy as np
NumPy 배열은 라이브러리의 핵심입니다. 대규모 데이터 세트를 빠르고 효율적으로 저장하고 벡터화된 작업을 지원합니다.
NumPy에서 배열을 만드는 방법에는 여러 가지가 있습니다.
# 1D array arr_1d = np.array([1, 2, 3, 4]) # 2D array arr_2d = np.array([[1, 2], [3, 4], [5, 6]]) # 3D array arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
예상 출력:
1D array: [1 2 3 4] 2D array: [[1 2] [3 4] [5 6]] 3D array: [[[1 2] [3 4]] [[5 6] [7 8]]]
이 함수는 미리 정의된 값으로 배열을 생성합니다.
# Creating arrays with initialization functions zeros_arr = np.zeros((2, 3)) ones_arr = np.ones((2, 2)) full_arr = np.full((3, 3), 7) eye_arr = np.eye(3)
예상 출력:
Zeros array: [[0. 0. 0.] [0. 0. 0.]] Ones array: [[1. 1.] [1. 1.]] Full array: [[7 7 7] [7 7 7] [7 7 7]] Identity matrix: [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
NumPy는 난수를 생성하는 다양한 방법을 제공합니다.
random_arr = np.random.rand(2, 2) randint_arr = np.random.randint(1, 10, (2, 3))
예상 출력:
Random array: [[0.234 0.983] [0.456 0.654]] Random integer array: [[5 7 2] [3 9 1]]
arr = np.array([[1, 2, 3], [4, 5, 6]]) print("Shape:", arr.shape) print("Size:", arr.size) print("Dimensions:", arr.ndim) print("Data type:", arr.dtype) print("Item size:", arr.itemsize)
예상 출력:
Shape: (2, 3) Size: 6 Dimensions: 2 Data type: int32 Item size: 4
reshaped = arr.reshape(3, 2) flattened = arr.ravel() transposed = arr.transpose()
예상 출력:
Reshaped array: [[1 2] [3 4] [5 6]] Flattened array: [1 2 3 4 5 6] Transposed array: [[1 4] [2 5] [3 6]]
NumPy 배열은 데이터에 액세스하고, 분할하고, 수정할 수 있는 강력한 방법을 제공하므로 1D, 2D, 3D 배열을 효율적으로 사용할 수 있습니다. 이 섹션에서는 인덱싱 및 슬라이싱을 사용하여 요소에 액세스하고 배열을 수정하는 방법을 살펴보겠습니다.
대괄호 [ ]를 사용하여 배열 요소에 액세스할 수 있습니다. 인덱싱은 1D, 2D, 3D 배열을 포함한 모든 차원의 배열에서 작동합니다.
인덱스를 지정하여 1D 배열의 개별 요소에 액세스할 수 있습니다.
arr = np.array([1, 2, 3, 4]) print(arr[1]) # Access second element
예상 출력:
2
2D 배열에서는 행 및 열 인덱스를 지정하여 요소에 액세스할 수 있습니다. 형식은 arr[행, 열]입니다.
arr_2d = np.array([[1, 2, 3], [4, 5, 6]]) print(arr_2d[1, 2]) # Access element at row 1, column 2
예상 출력:
6
3D 배열의 경우 깊이, 행, 열의 세 가지 인덱스를 지정해야 합니다. 형식은 arr[깊이, 행, 열]입니다.
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(arr_3d[1, 0, 1]) # Access element at depth 1, row 0, column 1
예상 출력:
6
슬라이싱은 더 큰 배열에서 하위 배열을 추출하는 데 사용됩니다. 슬라이싱 구문은 start:stop:step입니다. 시작 인덱스는 포함이고 중지 인덱스는 제외입니다.
시작, 중지 및 단계 인덱스를 지정하여 1D 배열을 슬라이스할 수 있습니다.
arr = np.array([10, 20, 30, 40, 50]) print(arr[1:4]) # Slicing from index 1 to 3 (exclusive of index 4)
Expected Output:
[20 30 40]
In a 2D array, you can slice both rows and columns. For example, arr[start_row:end_row, start_col:end_col] will slice rows and columns.
arr_2d = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]]) print(arr_2d[1:3, 0:2]) # Rows from index 1 to 2, Columns from index 0 to 1
Expected Output:
[[40 50] [70 80]]
For 3D arrays, slicing works similarly by specifying the range for depth, rows, and columns.
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(arr_3d[1:, 0, :]) # Depth from index 1, Row 0, All columns
Expected Output:
[[5 6]]
Boolean indexing allows you to filter elements based on a condition. The condition returns a boolean array, which is then used to index the original array.
arr = np.array([10, 15, 20, 25, 30]) print(arr[arr > 20]) # Extract elements greater than 20
Expected Output:
[25 30]
You can also modify arrays by adding, removing, or altering elements using various functions.
You can append or insert elements into arrays with the following methods:
arr = np.array([1, 2, 3]) appended = np.append(arr, 4) # Add 4 at the end inserted = np.insert(arr, 1, [10, 20]) # Insert 10, 20 at index 1 concatenated = np.concatenate([arr, np.array([4, 5])]) # Concatenate arr with another array
Expected Output:
Appended: [1 2 3 4] Inserted: [ 1 10 20 2 3] Concatenated: [1 2 3 4 5]
To remove elements from an array, you can use np.delete().
arr = np.array([1, 2, 3, 4]) deleted = np.delete(arr, 1) # Remove element at index 1 slice_deleted = np.delete(arr, slice(1, 3)) # Remove elements from index 1 to 2 (exclusive of 3)
Expected Output:
Deleted: [1 3 4] Slice deleted: [1 4]
NumPy supports element-wise operations, broadcasting, and a variety of useful mathematical functions.
You can perform operations like addition, subtraction, multiplication, and division element-wise:
arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) print(arr1 + arr2) # Element-wise addition print(arr1 - arr2) # Element-wise subtraction print(arr1 * arr2) # Element-wise multiplication print(arr1 / arr2) # Element-wise division
Expected Output:
Addition: [5 7 9] Subtraction: [-3 -3 -3] Multiplication: [ 4 10 18] Division: [0.25 0.4 0.5]
These functions return a single value for an entire array.
arr = np.array([1, 2, 3, 4, 5]) print(np.sum(arr)) print(np.mean(arr)) print(np.median(arr)) print(np.std(arr)) print(np.min(arr), np.max(arr))
Expected Output:
15 3.0 3.0 1.4142135623730951 1 5
NumPy allows operations between arrays of different shapes via broadcasting, a powerful mechanism for element-wise operations.
arr = np.array([1, 2, 3]) print(arr + 10) # Broadcasting scalar value 10
Expected Output:
[11 12 13]
NumPy provides many linear algebra functions, such as:
A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) dot_product = np.dot(A, B) matrix_mult = np.matmul(A, B) inv_A = np.linalg.inv(A) det_A = np.linalg.det(A)
Expected Output:
Dot product: [[19 22] [43 50]] Matrix multiplication: [[19 22] [43 50]] Inverse of A: [[-2. 1. ] [ 1.5 -0.5]] Determinant of A: -2.0
arr = np.array([3, 1, 2]) sorted_arr = np.sort(arr)
Expected Output:
[1 2 3]
arr = np.array([1, 2, 2, 3, 3, 3]) unique_vals = np.unique(arr)
Expected Output:
[1 2 3]
arr1 = np.array([1, 2]) arr2 = np.array([3, 4]) vstacked = np.vstack((arr1, arr2)) hstacked = np.hstack((arr1, arr2)) splits = np.split(np.array([1, 2, 3, 4]), 2)
Expected Output:
Vertical stack: [[1 2] [3 4]] Horizontal stack: [1 2 3 4] Splits: [array([1, 2]), array([3, 4])]
NumPy is an essential library for any Python user working with large amounts of numerical data. With its efficient handling of arrays and vast range of mathematical operations, it lays the foundation for more advanced topics such as machine learning, data analysis, and scientific computing.
위 내용은 Numpy 치트 시트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!