numpy方法总结

Numpy是一个用python实现的科学计算的扩展程序库,包括:

  • 1.一个强大的N维数组对象Array
  • 2.比较成熟的函数库
  • 3.用于整合C/C++和Fortran代码的工具包
  • 4.使用的线性代数、傅里叶变换和随机数生成函数。

1.创建numpy数组

  • np.array
  • np.zeros
  • np.ones
  • np.empty
  • np.ones
  • np.arange
    np.array([[1,2,3],[4,5,6]],dtype=float) #直接用现有的数组创建
    np.zeros((3,4)) #创建全0数组,参数是数组的形状
    np.ones((3,4)) #创建全1数组,和zeros用法相同
    np.empty((3,4)) #创建全空数组
    np.arange(a,b,c) #创建从a到b的数组,间隔为c
    

2.ndrray的数据类型

  • 查看数据类型
    a = np.array([1,2,3],dtype='float64')
    a.dtype
    
  • 转换数据类型
    a = np.array([1,2,3],dtype='float64')
    b = a.astype(np.int32)
    b.dtype #int32
    #a.astype()并不会改变a的数据类型
    

3.数组运算

numpy数组间的基本运算是一对一的,基本就是加减乘除。数组运算要求两个数据的形状相同,当形状不同的时候,就会自动触发广播机制。
数组广播

当两个形状不一样的数组进行相加,自动触发广播机制。
下边看几个广播计算的示意图:
在这里插入图片描述
在这里插入图片描述
当某一个数组的维度与另一个不同时,会自动补全缺失的维度。

4.索引与切片

  • 整数索引与切片

    创建一个3x4维的数组

    arr = np.array([[1,2,3,1],[4,5,6,2],[7,8,9,3]])
    
    arr[1] #[4,5,6,2]
    arr[0,1] #
    arr[:2] #[[1,2,3,1],[4,5,6,2]]
    arr[0:2,0:2] #[[1,2],[4,5]]
    arr[1,:2] #[4,5]
    
  • 花式索引
    arr[[0,2]] #获取索引维[0,2]的元素
    

    array([[1, 2, 3, 1],
    [7, 8, 9, 3]])

    arr[[1, 2], [1, 2]] #获取索引为(1,1)和(2,2)的元素	
    

    array([5,9])

5.数组的转置与轴对称

  • 转置
    arr = np.array([[1,2,3],[4,5,6]])
    arr.T
    
  • 轴对称

    轴对称比较难以理解,详解可以看这篇文章

  • swapaxes

    与transpose用法类似,不同点就是括号里的参数从3个改成两个(需要交换的维度)

6.numpy的通用函数

np.sqrt() #开方
np.abs() #求绝对值
np.square() #求平方
np.add(x,y) #x+y
np.multiply(x,y) #x*y
np.maximum(x,y) # 		

7.数组统计运算

arr = np.array([1,2,3,4])
arr.sum() #求和
arr.mean() #求平均值
arr.min() #求最小值
arr.max() #求最大值
arr.argmax() #最大值的索引
arr.argmin() #最小值的索引
arr.cumsum() #计算累计和
arr.cumprod() #计算累计乘积

np.diff(x,axis) 参考
np.floor() 向下取整
np.ceil() 向上取整
np.where 参考

8.数组排序

参考

9.随机数模块

  • np.random.rand()
np.random.rand(1,2,2) #随机生成三维数组
### Numpy常用函数总结 #### 数组创建 `numpy.array()` 是最基础的用于创建数组的方法。它接受列表或其他序列类型的输入并将其转换为 ndarray 对象[^1]。 ```python import numpy as np arr = np.array([1, 2, 3]) print(arr) ``` 除了 `array()` 方法外,还有其他一些方法可用于快速生成特定结构的数组: - `np.zeros(shape)` 创建指定形状的零矩阵。 - `np.ones(shape)` 创建全一矩阵。 - `np.empty(shape)` 返回未初始化的数据。 - `np.arange(start, stop, step)` 类似于内置的 range 函数,但返回的是 ndarray。 - `np.linspace(start, stop, num=50)` 在指定范围内均匀分布一定数量的样本点。 #### 数据类型与属性 NumPy 支持多种数据类型 (dtype),可以通过 `.dtype` 属性查看当前数组的数据类型;通过 `.shape`, `.ndim`, 和 `.size` 获取数组维度、维数以及总元素数目等基本信息。 #### 数学运算 Numpy 提供了大量的数学功能,包括但不限于三角函数 (`sin`, `cos`)、指数对数(`exp`, `log`) 等基本算术操作可以直接作用在整个数组上而无需显式循环。 例如计算平方根: ```python sqrt_arr = np.sqrt(np.array([4, 9])) print(sqrt_arr) # 输出 [2. 3.] ``` 另外提到过可以用 `numpy.dot()` 或者 @ 运算符来进行向量间的点乘操作。 #### 统计分析 统计相关的函数有最大最小值查找(`max`, `min`), 平均值(`mean`), 方差标准差(`std`, `var`)等等。 示例找出二维数组每列的最大值: ```python col_maxes = np.max([[1, 2], [3, 4]], axis=0) print(col_maxes) # 结果应该是 array([3, 4]) ``` #### 文件读写 保存加载文本或二进制文件也很方便,比如使用 `save/load` 处理 .npy/.npz 格式的压缩存档。 --- ### 关联概念补充说明 Python 的垃圾回收机制采用 **引用计数** 来跟踪内存中的对象状态,在某些场景下可能会因为隐含的对象共享而导致预期之外的行为发生,因此理解其工作原理有助于调试复杂应用环境下的资源泄漏等问题[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值