1、Numpy模块

NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。

  • 机器学习模型:在编写机器学习算法时,需要对矩阵进行各种数值计算。例如矩阵乘法、换位、加法等。NumPy提供了一个非常好的库,用于简单(在编写代码方面)和快速(在速度方面)计算。NumPy数组用于存储训练数据和机器学习模型的参数。
  • 图像处理和计算机图形学:计算机中的图像表示为多维数字数组。NumPy成为同样情况下最自然的选择。实际上,NumPy提供了一些优秀的库函数来快速处理图像。例如,镜像图像、按特定角度旋转图像等。
  • 数学任务NumPy对于执行各种数学任务非常有用,如数值积分、微分、内插、外推等。因此,当涉及到数学任务时,它形成了一种基于Python的MATLAB的快速替代。

由于是第三方模块,所以要进行下载: pip insatll numpy

数组基础

numpy主要就是围绕着数组进行展开;主要用于矢量和矩阵、线性代数等数学运算

import numpy
my_array = numpy.array([1,2,3,4,5])
print(my_array)
# 生成数组
[1 2 3 4 5]
# my_array 是一个包含5个元素的数组。
print(my_array.shape) # (5, ) # 数组的尺寸, 几行几列
# 打印各个元素
print(my_array[0]) # 1
# 修改数组元素
my_array[0] = -1
print(my_array) # 快捷创建就是
my_array = numpy.arange(10)
print(my_array)
# 输出为:[0 1 2 3 4 5 6 7 8 9] 注意: arange有点类似于Python中的range,都是顾头不顾尾

二维数组的创建

import numpy
array = numpy.arange(10).reshape(5,2) # reshape值得是重塑函数
print(array)
# 输出为:
[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]
此处: # reshape(5,2)的意思就是5代表的是数组的列数,2代表的是每个单独数组的元素为2个

三维数组的创建

import numpy
array = numpy.arange(27).reshape(3,3,3)
print(array)
# 注意: 数组中的元素数量27必须是尺寸3*3*3的积
# 输出为
[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]] [[ 9 10 11]
[12 13 14]
[15 16 17]] [[18 19 20]
[21 22 23]
[24 25 26]]]

dot()

  • 除了 dot() 之外,这些操作符都是对数组进行逐元素运算。比如 (a, b, c) + (d, e, f) 的结果就是 (a+d, b+e, c+f)。它将分别对每一个元素进行配对,然后对它们进行运算。它返回的结果是一个数组。注意,当使用逻辑运算符比如 “<” 和 “>” 的时候,返回的将是一个布尔型数组,这点有一个很好的用处,后边我们会提到。

    dot() 函数计算两个数组的点积。它返回的是一个标量(只有大小没有方向的一个值)而不是数组。

    #它背后的一些数学知识

    dot()函数称为点积。理解这一点的最好方法是看下图,下图将表示它是如何进行计算的。

  • 我们使用dot函数来计算向量的内积,将向量乘以矩阵,并乘以矩阵。 dot既可以作为numpy模块中的函数,也可以作为数组对象的实例方法:

  • import numpy as np
    x = np.array([[1,2],[3,4]])
    y = np.array([[5,6],[7,8]])
    v = np.array([9,10])
    w = np.array([11, 12])
    print(v.dot(w))
    print(np.dot(v, w))
    print(x.dot(v))
    print(np.dot(x, v))
    # [[19 22]
    # [43 50]]
    print(x.dot(y))
    print(np.dot(x, y)) 计算两个向量之间的点积

numpy的一点学习的更多相关文章

  1. Numpy库的学习(三)

    今天我们继续学习一下Numpy库的学习 废话不多说 ,开始讲 比如我们现在想创建一个0-14这样一个15位的数组 可以直接写,但是很麻烦,Numpy中就给我们了一个方便创建的方法 numpy中有一个a ...

  2. numpy之random学习

    在机器学习中参数初始化需要进行随机生成,同时样本也需要随机生成,或者遵从一定规则随机生成,所以对随机生成的使用显得格外重要. 有的是生成随机数,有的是随机序列,有点是从随机序列中选择元素等等. 简单的 ...

  3. numpy常用函数学习

    目录numpy常用函数学习点乘法线型预测线性拟合裁剪.压缩和累乘相关性多项式拟合提取符号数组杂项点乘法该方法为数学方法,但是在numpy使用的时候略坑.numpy的点乘为a.dot(b)或numpy. ...

  4. 关于Set和Map数据结构的一点学习

    关于js的Set和Map结构的学习和记录 对阮一峰老师的ES6入门和网上有关资料的的一点学习和记录 1.Set数据结构 Set构造函数的参数是一个可遍历( iterator)对象 Set中的成员值是唯 ...

  5. [学习笔记] Numpy基础 系统学习

    [学习笔记] Numpy基础 上专业选修<数据分析程序设计>课程,老师串讲了Numpy基础,边听边用jupyter敲了下--理解+笔记. 老师讲的很全很系统,有些点没有记录,在PPT里就不 ...

  6. Numpy库的学习(五)

    今天继续学习一下Numpy库,废话不多说,整起走 先说下Numpy中,经常会犯错的地方,就是数据的复制 这个问题不仅仅是在numpy中有,其他地方也同样会出现 import numpy as np a ...

  7. Numpy库的学习(四)

    我们今天继续学习一下Numpy库 接着前面几次讲的,Numpy中还有一些标准运算 a = np.arange(3) print(a) print(np.exp(a)) print(np.sqrt(a) ...

  8. Numpy库的学习(二)

    今天来继续学习一下Numpy库的使用 接着昨天的内容继续 在Numpy中,我们如果想要进行一个判断使用“==” 我们来看下面的代码 vector = np.array([5,10,15,20,25]) ...

  9. Numpy库的学习(一)

    今天来学习一下Python库中,支持高级大量的维度数组与矩阵运算的神奇的Numpy库 Numpy同时也对数组运算提供大量的数学函数,对于大量计算运行效率极好 是大量机器学习框架的基础库 废话不多说,直 ...

随机推荐

  1. unittest---unittest中verbosity参数设置

    我们在做自动化测试的时候,有时候想要很清楚的看到每条用例执行的详细信息,我们可以通过unittest中verbosity参数进行设置 verbosity参数设置 verbosity表示在只执行用例的过 ...

  2. November 24th, Week 48th, Sunday, 2019

    Once you replace negative thoughts with positive ones, you will start having positive results. 淘汰消极思 ...

  3. LeetCode刷题--两数相加(中等)

    题目描述 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...

  4. pytest系列(二):筛选用例新姿势,mark 一下,你就知道。

    pytest系列(一)中给大家介绍了pytest的特性,以及它的编写用例的简单至极. 那么在实际工作当中呢,我们要写的自动化用例会比较多,不会都放在一个py文件里. 如下图所示,我们编写的用例存放在不 ...

  5. nginx基础(1)

    目录 一.概念 基础概念 响应码 请求和响应报文的格式 http无连接 我叫张贺,贪财好色.一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步 ...

  6. Java IO系列之 ByteArrayInputStream

    http://www.cnblogs.com/skywang12345/p/io_02.html

  7. centos安装jdk10

    下载一个jdk10文件到linux : wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=ac ...

  8. jquery选择器之模糊匹配

    模糊匹配主要分为前导模糊匹配,后导模糊匹配和全文模糊匹配. 前导模糊匹配[^=] 例子:选择name前缀为aa的所有div的jQuery对象. $("div[name^='aa']" ...

  9. eclipse的一些常用快捷键

    掌握了eclipse快捷键功能,能够大大提高开发效率. 这里总结一些eclipse的常用快捷键. 编辑相关快捷键  1. [ALT+/]:此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不 ...

  10. Linux 解压xz格式文件及安装xz

    1.安装xz命令 # yum install epel-release -y # yum install xz -y 2.将xz文件解压为tar文件 # xz -d test.tar.xz 3.将ta ...