A powerful and versatile Python library for scientific computing is `NumPy`. It provides support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. NumPy is foundational for many other Python data science and machine learning libraries, offering efficient array operations and numerical computations. Here's a concise reference guide for common use cases with `NumPy`, formatted in Markdown syntax: # `NumPy` Reference Guide ## Installation ``` pip install numpy ``` ## Basic Operations ### Importing NumPy ```python import numpy as np ``` ### Creating Arrays ```python # Create a one-dimensional array arr_1d = np.array([1, 2, 3]) # Create a two-dimensional array arr_2d = np.array([[1, 2, 3], [4, 5, 6]]) # Create an array of zeros zeros = np.zeros((3, 4)) # Create an array of ones ones = np.ones((2, 3)) # Create an array with a range of elements range_array = np.arange(10) # Create a linearly spaced array linear_spaced = np.linspace(0, 1, 5) ``` ### Array Attributes ```python # Array shape print(arr_2d.shape) # Number of array dimensions print(arr_2d.ndim) # Data type of array elements print(arr_2d.dtype) # Size of the array (number of elements) print(arr_2d.size) ``` ### Indexing and Slicing ```python # Get a specific element [r, c] element = arr_2d[1, 2] # Get a specific row row = arr_2d[0, :] # Get a specific column col = arr_2d[:, 2] # Slicing [start_index:end_index:step_size] slice_arr = arr_2d[0, 0:2] ``` ### Basic Array Operations ```python # Element-wise addition result = arr_1d + arr_1d # Element-wise subtraction result = arr_1d - arr_1d # Scalar multiplication result = arr_1d * 2 # Element-wise multiplication result = arr_1d * arr_1d # Matrix multiplication result = np.dot(arr_2d, arr_2d.T) # Division result = arr_1d / arr_1d ``` ### Mathematical Functions ```python # Square root sqrt_arr = np.sqrt(arr_1d) # Exponential exp_arr = np.exp(arr_1d) # Logarithm log_arr = np.log(arr_1d) # Trigonometric functions sin_arr = np.sin(arr_1d) ``` ### Statistics ```python # Minimum min_val = np.min(arr_1d) # Maximum max_val = np.max(arr_1d) # Sum sum_val = np.sum(arr_1d) # Mean mean_val = np.mean(arr_1d) # Median median_val = np.median(arr_1d) # Standard deviation std_dev = np.std(arr_1d) ``` ### Reshaping and Flattening ```python # Reshape reshaped_arr = arr_2d.reshape((3, 2)) # Flatten the array flat_arr = arr_2d.flatten() ``` ## Advanced Operations ### Stacking Arrays ```python # Vertical stacking v_stack = np.vstack([arr_1d, arr_1d]) # Horizontal stacking h_stack = np.hstack([arr_1d, arr_1d]) ``` ### Splitting Arrays ```python # Split the array in 3 equally shaped arrays split_arr = np.split(arr_1d, 3) ``` ### Boolean Masking and Advanced Indexing ```python # Find elements greater than 2 result = arr_1d > 2 # Index with a boolean array filtered_arr = arr_1d[result] ``` `NumPy` is foundational for numerical and scientific computation in Python, providing efficient operations for handling and processing large data sets. This guide introduces fundamental concepts and operations, but NumPy's capabilities extend much further, making it an essential tool for data analysis, machine learning, and beyond.