当前位置: 首页 > news >正文

Numpy基础知识

一、NumPy基础概念

🔍 什么是NumPy?

  • 核心功能:处理任意维度的数组与矩阵,比Python原生数据结构更高效。

  • 优势:简化复杂计算,支持矢量化运算,底层C实现速度快。

二、数组的创建与属性

👉 1. 数组创建方法

  • 基础创建

# 一维数组  
arr1 = np.array([1, 2, 3])  
# 多维数组  
arr2 = np.array([[1, 2], [3, 4]])  
  • 特殊数组生成

    • 全零数组:np.zeros((2,3))

    • 全一数组:np.ones((3,3))

    • 等差数组:np.arange(0, 10, 2)

    • 等分数组:np.linspace(0, 10, 5)

👉 2. 数组常用属性

属性说明示例
ndim数组维度arr.ndim → 2
shape形状(行数, 列数)arr.shape → (2,3)
size元素总数arr.size → 6
dtype数据类型arr.dtype → int64

 三、数组变形与数据类型

🎯 1. 改变数组形状

  • reshape()不复制数据,仅调整视图(需元素总数匹配):

  • arr = np.arange(6)  
    arr_2d = arr.reshape(2, 3)  # 转为2行3列  
  • resize()直接修改原数组形状,不足时填充0。

🎯 2. 修改数据类型

使用astype()转换类型:

arr_float = arr.astype(np.float64)  # 转为浮点型  
四、索引与切片

🔍 1. 一维数组

  • 索引从0开始,支持负数索引:

arr = np.array([10, 20, 30, 40])  
print(arr[1])    # 20  
print(arr[-1])   # 40  

切片语法:start:end:step

arr[1:3]  # [20, 30]  

🔍 2. 多维数组

  • 逗号分隔索引,按维度访问:

arr_2d = np.array([[1,2], [3,4]])  
print(arr_2d[1, 0])  # 3(第2行第1列)  

切片支持多维度:

arr_2d[:, 1]  # 所有行的第2列 → [2, 4]  
五、副本与视图

⚠️ 关键区别

  • 视图(浅复制):共享原始数据内存,修改视图会影响原数组。

view = arr.view()  
view[0] = 100  # 原数组同步修改  

副本(深复制):完全独立的新数组,修改不影响原数据。

copy = arr.copy()  
copy[0] = 200  # 原数组不变  
六、轴(Axis)的概念

📌 核心规则

  • 0轴:行方向(纵向操作,如按列求和)

  • 1轴:列方向(横向操作,如按行求均值)

  • 三维数组:0轴(层)、1轴(行)、2轴(列)

示例

arr = np.array([[1,2], [3,4]])  
np.sum(arr, axis=0)  # 按列求和 → [4, 6]  
np.sum(arr, axis=1)  # 按行求和 → [3, 7]  
七、常用数组操作

🚀 1. 添加元素

  • np.append():末尾追加元素(生成新数组)

new_arr = np.append(arr, [5,6])  

np.insert():指定位置插入元素

new_arr = np.insert(arr, 1, 99)  # 在索引1处插入99  

🚀 2. 删除元素

  • np.delete():按索引删除

new_arr = np.delete(arr, [0,2])  # 删除索引0和2的元素  

🚀 3. 去重操作

  • np.unique():返回唯一值并排序

unique_arr = np.unique([2,1,2,3])  # [1,2,3]  

 


👏觉得文章对自己有用的宝子可以收藏文章并给小编点个赞!

👏想了解更多统计学、数据分析、数据开发、机器学习算法、深度学习等有关知识的宝子们,可以关注小编,希望以后我们一起成长!

相关文章:

  • Highcharts 配置语法详解
  • redis repl_backlog_first_byte_offset 这个字段的作用
  • 安装 Windows Docker Desktop - WSL问题
  • NAT 代理服务 内网穿透
  • 【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串
  • 详解ESP32使用select函数来监听串口数据
  • 99分巧克力
  • Python可视化大框架的研究与应用
  • Python大战Java:AI时代的编程语言‘复仇者联盟‘能否换C位?
  • Uniapp开发微信小程序插件的一些心得
  • AI Agent 定义与核心要素详解
  • 二、双指针——5. 移动零
  • SQLAlchemy系列教程:SQLAlchemy快速入门示例项目
  • 曹操智行构建国内首个全域自研闭环智驾生态
  • 安装Oracle23ai的教程
  • c语言基础第14节《指针》
  • 深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析
  • tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)
  • 链表的概念及功能实现
  • 【数字信号处理:从原理到应用的深度剖析】
  • b2b网站平台免费有哪些/seo指的是搜索引擎
  • 织梦网站文章相互调用/seo优化顾问服务
  • 北京的做网站的公司/重庆百度推广排名
  • 网站建设差打不开/如何做友情链接
  • 网站建设上市公司/推广团队在哪里找
  • 广州网站推广建设/兰州网络推广与营销