【numpy基础】--数组简介

这篇具有很好参考价值的文章主要介绍了【numpy基础】--数组简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NumPy(Numerical Python)是一个Python库,主要用于高效地处理多维数组和矩阵计算。它是科学计算领域中使用最广泛的一个库。

NumPy中,数组是最核心的概念,用于存储和操作数据。
NumPy数组是一种多维数组对象,可以存储相同类型的元素,它支持高效的数学运算和线性代数操作。

1. 数据类型

numpy 数组要求其中的元素必须是同一个类型的,虽然丧失了一些灵活性,却带来的性能的极大提升。
numpy的数组中如果有字符串,那么所有的值都变成字符型了。
再进行数学运算时会报错,如下所示

import numpy as np

arr = np.array([1, "abc", 3.1])
arr + 1

#错误信息
UFuncTypeError: ufunc 'add' did not contain a loop with signature matching types ...

numpy的标准数据类型主要是各类数值类型,毕竟这个库主要就是用来做数值运算的。
numpy支持如整数(int8、int16、int32、int64)、浮点数(float32、float64)、复数(complex64、complex128)等类型。
此外,numpy还支持一些特殊类型,如布尔型(bool)、无类型(void)等。

具体请参考文档:https://numpy.org/doc/stable/user/basics.types.html

选择数据类型时,注意考虑数据类型的内存占用和计算效率,以选择最优的数据类型。

2. 维,秩和轴

numpy数组的维度,秩和轴这三个概念经常用到。
其中维度是同样的,维度是编程中常用说法,轴是线性代数中常用说法。

numpy维度的信息通过shape属性获取,比如:

import numpy as np

arr = np.array([[[1, 2, 3], [1, 2, 3]]])

arr.shape

#结果:
(1, 2, 3)

这个数组有3个维度(轴),但是每个维度(轴)方向的长度不一样,分别是1,2,3

是指轴的个数,也就是维度的数量,比如上面的数组,就是3
numpy中秩的信息都过ndim属性来获取,比如:

arr.ndim

#结果:
3

3. 创建方式

学习numpy的数组,最重要的目的就是掌握如何运用numpy的数组来进行数值计算。

学习numpy数组的各类运算操作之前,掌握numpy提供的各种数组创建方法必不可少。
numpy提供了多种数组创建方式,每种方式都有其优点和意义。
根据实际需求选择合适的创建方式可以方便地创建具有特定形状和大小的数组,并为其分配内存空间,方便后续高效的学习各种数学运算和线性代数操作。

3.1. zeros

zeors方法可以创建指定维度类型的数组,数组的每个元素都是0

一维,类型分别为intfloat的数组。

import numpy as np

np.zeros(5, dtype=int)
#>>> array([0, 0, 0, 0, 0])

np.zeros(5, dtype=float)
#>>> array([0., 0., 0., 0., 0.])

不同维度的数组。

import numpy as np

np.zeros((3,3), dtype=float)
#>>> 
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

np.zeros((2,4), dtype=float)
#>>>
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.]])

3.2. ones

ones方法可以创建指定维度类型的数组,数组的每个元素都是1

一维,类型分别为intfloat的数组。

import numpy as np

np.ones(5, dtype=int)
#>>> array([1, 1, 1, 1, 1])

np.ones(5, dtype=float)
#>>> array([1., 1., 1., 1., 1.])

不同维度的数组。

import numpy as np

np.ones((3,3), dtype=float)
#>>>
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

np.ones((2,4), dtype=float)
#>>>
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.]])

3.3. linspace

linspace函数用来构建均匀分布的数组。

比如,创建一个均匀分布在0~1之间的5个值的数组。

import numpy as np

np.linspace(0, 1, 5)
#>>> array([0.  , 0.25, 0.5 , 0.75, 1.  ])

linspace函数有个endpoint属性,用来控制是否包含最后一个元素。
下面看看这个属性设置之后的区别:

import numpy as np

np.linspace(0, 1, 5, endpoint=False)
#>>> array([0. , 0.2, 0.4, 0.6, 0.8])

#其结果相当于不加endpoint属性时,
#平均分割成6份后取前5份
np.linspace(0, 1, 6)
#>>> array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])

3.4. random

random函数是随机生成numpy数组,也是使用最多的函数。

随机生成值在0~1之间的数组,可以指定任意维度:

import numpy as np

np.random.random((3, 3))
#>>>
array([[0.53058991, 0.72007309, 0.44017494],
       [0.83616085, 0.65746936, 0.56416387],
       [0.56300549, 0.63187035, 0.87307415]])


随机生成值在 0~100 之间整数的数组,可以指定任意维度,
随机值的范围通过第一个和第二个参数指定。

import numpy as np

np.random.randint(0, 100, (3, 3))
#>>>
array([[24, 55, 62],
       [79, 86,  3],
       [14,  7, 63]])

随机生成一个均值0标准差1 的符合正态分布的数组,可以指定任意维度,
均值和标准差通过第一个和第二个参数指定。

np.random.normal(0, 1, (4, 3))
#>>>
array([[ 1.65321113,  1.19167512, -0.13037245],
       [ 1.16451259, -0.58080834,  0.34491977],
       [-0.77054092, -0.95344105, -0.12393142],
       [-0.05896611, -1.25108846, -1.21772507]])

3.5. eye

eye函数是用来创建单位矩阵的。

如果只有一个参数,创建的就是方阵。

np.eye(4)
#>>>
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

如果创建行列不一样的矩阵,那么,行和列哪个轴短,就以哪个为准生成方阵,其他值都是0

np.eye(2, 4)
#>>>
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.]])

np.eye(4, 2)
#>>>
array([[1., 0.],
       [0., 1.],
       [0., 0.],
       [0., 0.]])

4. 总结回顾

本篇介绍了numpy中最重要的概念--数组的相关知识。

包括数组的数据类型,主要是各种数值类型,
以及各类常用的创建方式(zeros,ones,linspace,random,eye)。

这些虽然简单,却是后续学习各种数组操作的基础。文章来源地址https://www.toymoban.com/news/detail-488653.html

到了这里,关于【numpy基础】--数组简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【numpy基础】--数组过滤

    在 numpy 中,数组可以看作是一系列数值的有序集合,可以通过下标访问其中的元素。 处理数组的过程中,经常需要用到数组过滤功能。 过滤功能可以在处理数据时非常有用,因为它可以使数据更加干净和可读性更强。 例如,在进行数据分析时,通常需要去除异常值,过滤掉

    2024年02月11日
    浏览(38)
  • 【numpy基础】--数组索引

    数组索引是指在 numpy 数组中引用特定元素的方法。 numpy 的数组索引又称为 fancy indexing ,比其他编程语言的索引强大很多。 numpy的索引除了像其他语言一样选择一个元素,还可以间隔着选取多个元素,也可以用任意的顺序选取元素。 比如一维数组: 从上面的示例看出,通过

    2024年02月11日
    浏览(42)
  • 【Python Numpy】广播、数组的迭代

    在Python的科学计算领域,NumPy是一个强大的工具,它提供了用于操作多维数组的功能。广播(Broadcasting)是NumPy中的一个重要概念,它使得不同形状的数组之间的计算变得非常灵活和便捷。本文将介绍广播是什么,以及如何在NumPy中使用广播来进行数组计算。 在Python的科学计算

    2024年02月06日
    浏览(62)
  • 【深度学习】 Python 和 NumPy 系列教程(十二):NumPy详解:4、数组广播;5、排序操作

    目录 一、前言 二、实验环境 三、NumPy 0、多维数组对象(ndarray) 多维数组的属性 1、创建数组 2、数组操作 3、数组数学 4、数组广播 5、排序操作 1. np.sort() 函数 2. np.argsort() 函数 3. ndarray.sort() 方法 4. 按列或行排序 5. np.lexsort() 函数 6. np.partition() 函数 7. np.argpartition() 函

    2024年02月08日
    浏览(67)
  • Python numpy - 数组的创建与访问

    目录 一 数组array的创建途径 1  列表list  2 函数array  3 函数arange 4 函数zeros 5 函数eyes 6 随机函数randn/ randint 二 数组array的访问  1 访问形状/元素个数/数据类型  2 访问一维数组的位置/范围 3 访问二维数组的位置/范围 4 用:访问二维数组的切片 生成数组的常用途径 list列表

    2024年02月07日
    浏览(47)
  • Python numpy - 数组与矩阵的运算

    目录  数组array 一 数组的函数 unique函数  sum函数  max函数 二 数组的加减 三 数组的乘除  矩阵matrix 一 矩阵的生成 二 矩阵的加减 三  矩阵的乘法 创建数组a和b用来运算(至少两个) 数组常用函数 函数 作用 unique() 求数组里的唯一值,输出从小到大排列 sum() 对数组整

    2024年02月11日
    浏览(46)
  • 1、NumPy简介:开启Python科学计算之旅

    系列文章:Numpy系列文章-CSDN博客       目录 什么是 NumPy? 为什么要使用 NumPy? 安装和设置 NumPy 环境 开始使用 NumPy        在数据科学、人工智能和科学计算的世界中,Python 已经成为了一种主流的编程语言。这一现象的背后,有一个非常重要的推手,那就是 NumPy。Num

    2024年01月19日
    浏览(40)
  • 【Python入门知识】NumPy 数组搜索,案例+理论讲解

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 搜索数组 可以在数组中搜索(检索)某个值,然后返回获得匹配的索引。 要搜索数组,请使用 where() 方法。 实例 查找值为 4 的索引: 运行实例 更多python资料、源码、教程: 点击此处跳转文末名片获取 上例会返回一个元组:(array([

    2024年02月03日
    浏览(48)
  • 【Python入门第四十六天】Python丨NumPy 数组重塑

    重塑意味着更改数组的形状。 数组的形状是每个维中元素的数量。 通过重塑,我们可以添加或删除维度或更改每个维度中的元素数量。 实例 将以下具有 12 个元素的 1-D 数组转换为 2-D 数组。 最外面的维度将有 4 个数组,每个数组包含 3 个元素: 运行实例 从 1-D 重塑为 3-D

    2023年04月08日
    浏览(48)
  • 【Python爬虫与数据分析】NumPy进阶——数组操作与运算

    目录 一、NumPy数组操作 1. ndarray更改形状 2. ndarray转置 3. ndarray组合 4. ndarray拆分 5. ndarray排序 二、NumPy数组运算 1. 基本运算 2. 逻辑函数 3. 数学函数 三、日期时间的表示和间隔 1. 日期时间的表示——datetime64 2. 日期时间的计算——timedelta64 3. datetime64与datetime的转换 在对数组进

    2024年02月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包