Technical requirementsWhat CuPy offersHow to use CuPy arraysCreating CuPy arraysData transfers and converting other objects to CuPy arraysElementwise operations (ufuncs)Reduction operationsScan operationsBroadcastingArray indexing and slicingReshaping, combining, and reordering arraysOther operationsSaving and loading dataHow to use CuPy with other librariesUsing CuPy with NumPyUsing CuPy with NumbaUsing CuPy with SciPyWhen to use CuPyCuPy versus NumPyCuPy versus Numba-CUDAHow to write GPU-agnostic codePerformance tipsBe mindful of dtypesPreallocate, don't concatenateNot every axis is created equalSummaryQuestionsAnswers