Numpy 数组操作
NumPy是一个基于Python的科学计算库,能够为Python提供数组对象、矩阵运算、数值分析等功能,很多科学计算和数据分析都需要使用NumPy库。本文主要介绍NumPy数组的操作。
创建NumPy数组
创建NumPy数组有多种方式,最常用的是使用numpy.array()函数和numpy.zeros()函数。
- numpy.array(): 从python列表或元祖中获得Numpy数组
import numpy as np a = np.array([1, 2, 3]) print(a) # [1 2 3]
- numpy.zeros(): 创建零数组
b = np.zeros((3, 3)) print(b) # [[0. 0. 0.], [0. 0. 0.], [0. 0. 0.]]
数组切片和索引
NumPy数组可以使用切片和索引进行访问和修改。
- 切片
c = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(c[:2, 1:]) # [[2 3] [5 6]]
- 索引
d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(d[1, 2]) # 6
数组形状操作
- ndarray.shape:数组形状
e = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(e.shape) # (3, 3)
- ndarray.reshape:改变数组形状
f = np.array([[1, 2, 3], [4, 5, 6]]) print(f.reshape(3, 2)) #[[1 2] [3 4] [5 6]]
数组类型操作
- ndarray.dtype:数组数据类型
g = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64) print(g.dtype) # float64
- ndarray.astype:改变数组数据类型
h = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64) print(h.astype(np.int32)) # [[1 2 3] [4 5 6]]
数组运算
- 简单的算术运算:
i = np.array([[1, 2, 3], [4, 5, 6]]) j = np.array([[2, 3, 4], [5, 6, 7]]) print(i + j) # [[ 3 5 7] [ 9 11 13]] print(i - j) # [[-1 -1 -1] [-1 -1 -1]] print(i * j) # [[ 2 6 12] [20 30 42]]
- 矩阵乘法(@运算符):
k = np.array([[1, 2], [3, 4]]) l = np.array([[5, 6], [7, 8]]) print(k @ l) # [[19 22] [43 50]]
高级numpy操作
- 数组级别的转置:
m = np.array([[1, 2, 3], [4, 5, 6]]) print(m.T) # [[1 4] [2 5] [3 6]]
- 数组堆叠:
n = np.array([[1, 2], [3, 4]]) o = np.array([[5, 6], [7, 8]]) print(np.vstack((n,o))) # [[1 2] [3 4] [5 6] [7 8]]
总之,NumPy是一个强大的科学计算库,提供了各种数组操作和运算,可以方便地处理基于数组的数据分析和科学计算问题,有助于提高数据分析和科学计算的效率。