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

网络广告视频/网站推广优化平台

网络广告视频,网站推广优化平台,电商网站开发平台浏览器,全网vip视频网站建设numpy学习笔记8:数组属性和基础操作的详细描述 以下是 NumPy 数组的核心属性和基础操作的详细说明,涵盖从数据结构到实际应用的各个方面: 一、NumPy 数组的核心属性 1. shape - 数组形状 作用:描述数组每个维度的长度&#xff0…

numpy学习笔记8:数组属性和基础操作的详细描述

以下是 NumPy 数组的核心属性基础操作的详细说明,涵盖从数据结构到实际应用的各个方面:


一、NumPy 数组的核心属性

1. shape - 数组形状
  • 作用:描述数组每个维度的长度(以元组形式返回)。

  • 示例

    import numpy as np
    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr.shape)  # 输出 (2, 3) → 2行3列
  • 操作

    • 修改形状:arr.reshape(new_shape)(需元素总数一致)

      arr_reshaped = arr.reshape(3, 2)  # 形状变为 (3, 2)
2. dtype - 数据类型
  • 作用:显示数组元素的数据类型(如 int32float64bool)。

  • 示例

    print(arr.dtype)  # 输出 int64(默认推断类型)
  • 指定类型

    arr_float = np.array([1, 2, 3], dtype=np.float32)
3. ndim - 维度数
  • 作用:返回数组的维度数量(秩)。

  • 示例

    arr_3d = np.ones((2, 3, 4))
    print(arr_3d.ndim)  # 输出 3(三维数组)
4. size - 元素总数
  • 作用:计算数组所有维度的元素乘积。

  • 示例

    print(arr.size)  # 输出 6(2*3=6)
5. itemsize - 单个元素字节大小
  • 作用:显示一个数组元素的字节数。

  • 示例

    print(arr.itemsize)  # 输出 8(int64 类型占8字节)
6. nbytes - 总内存占用
  • 作用:计算数组总内存占用量(size * itemsize)。

  • 示例

    print(arr.nbytes)  # 输出 48(6元素 * 8字节)

二、数组基础操作

1. 索引与切片
  • 一维数组

    arr = np.array([0, 1, 2, 3, 4])
    print(arr[2])      # 输出 2(索引从0开始)
    print(arr[1:4])    # 输出 [1, 2, 3](左闭右开区间)
  • 多维数组

    arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr_2d[0, 1])    # 输出 2(第0行第1列)
    print(arr_2d[:, 1:3])  # 输出所有行的第1到2列 → [[2,3], [5,6]]
2. 形状操作
  • reshape():改变形状(不修改数据):

    arr = np.arange(6)
    arr_2d = arr.reshape(2, 3)  # 转为二维数组
  • flatten() 和 ravel()

    flat = arr_2d.flatten()  # 深拷贝展开(新内存)
    raveled = arr_2d.ravel() # 浅拷贝展开(视图)
3. 数学运算
  • 逐元素运算

    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    print(a + b)  # 输出 [5, 7, 9](加法)
    print(a * 2)  # 输出 [2, 4, 6](标量乘法)
  • 广播机制(不同形状数组运算):

    a = np.array([[1], [2], [3]])  # 形状 (3,1)
    b = np.array([10, 20])         # 形状 (2,)
    print(a + b)  # 广播后形状 (3,2) → [[11,21], [12,22], [13,23]]
4. 统计操作
  • 聚合函数

    arr = np.array([[1, 2], [3, 4]])
    print(np.sum(arr))     # 总和 → 10
    print(np.mean(arr))    # 平均值 → 2.5
    print(np.max(arr))     # 最大值 → 4
  • 沿轴计算

    print(np.sum(arr, axis=0))  # 列求和 → [4, 6]
    print(np.sum(arr, axis=1))  # 行求和 → [3, 7]
5. 数组拼接
  • np.concatenate()

    a = np.array([[1, 2], [3, 4]])
    b = np.array([[5, 6]])
    c = np.concatenate((a, b), axis=0)  # 垂直拼接 → 形状 (3,2)
  • np.vstack() 和 np.hstack()

    vertical = np.vstack((a, b))   # 垂直拼接
    horizontal = np.hstack((a, a)) # 水平拼接 → 形状 (2,4)

三、内存管理与性能优化

1. 视图(View)与拷贝(Copy)
  • 视图:共享内存的数据切片(修改视图会影响原数组):

    view = arr[1:3]    # 视图(不复制数据)
    view[0] = 100      # 原数组对应位置也被修改
  • 拷贝:创建独立副本:

    copy = arr.copy()  # 深拷贝(新内存)
2. 内存布局
  • order 参数

    # C 顺序(行优先)
    c_array = np.array([[1, 2], [3, 4]], order='C')
    # Fortran 顺序(列优先)
    f_array = np.array([[1, 2], [3, 4]], order='F')

四、常用技巧与注意事项

  1. 避免显式循环

    # 错误示范(慢):
    for i in range(len(arr)):arr[i] *= 2
    # 正确示范(快):
    arr *= 2  # 向量化操作
  2. 布尔索引

    arr = np.array([3, 1, 4, 1, 5])
    mask = arr > 2
    print(arr[mask])  # 输出 [3,4,5]
  3. 类型转换

    arr_float = arr.astype(np.float32)  # 转换为浮点数

通过掌握这些属性和操作,你可以高效操作 NumPy 数组,为数据分析、科学计算和机器学习奠定基础!

http://www.lryc.cn/news/577587.html

相关文章:

  • 个体户可以备案网站吗/百度 seo优化作用
  • 站长要维护网站/seo网络推广有哪些
  • 河南网站优化要多少钱/营销方式有哪几种
  • 黄石做网站要多少钱/windows优化大师可以卸载吗
  • 网站图标可以用ps 做吗/百度问问首页
  • 成都市城乡建设委员会官方网站/360广告推广平台
  • 东莞知名网站建设/网站推广的6个方法是什么
  • reactjs 做的网站/短视频seo代理
  • 网站维护托管公司/营销软文300字
  • 中宁网站建设公司/营销型网站建设套餐
  • 手表 网站策划/网络营销的方法是什么
  • 旅游网站建设的概念/下载谷歌浏览器并安装
  • 电脑系统做的好的网站好/百度云搜索引擎入口
  • 如何做网站的seo/石家庄seo外包的公司
  • 珠宝类网站建设可执行报告/搜索引擎优化的主题
  • 网站划分栏目/郑州手机网站建设
  • 资源网站模板/百度账号客服
  • 云南建设监理协会网站/谷歌浏览器安卓版
  • 网站建设大赛策划书/海阳seo排名优化培训
  • 帮人做钓鱼网站/如何在各大网站发布信息
  • 网站更换服务器 备案/泉州seo按天收费
  • 北京海淀区是几环/重庆seo网站推广费用
  • 河北网站建设团队/电商网站建设
  • 百度上做网站/官方百度app下载安装
  • 注册域名的官方网站/软文推广一般发布在哪些平台
  • 24小时学会网站建设pdf/关键词吉他谱
  • 做外贸需要网站/西安网站建设排名
  • 合肥建站公司有哪家招聘的/百度seo代理
  • 贵州网站建设价格/怎么做盲盒
  • 网站前端培训/网站建设报价明细表