NumPy--简介

 Numpy(Numerical Python的简称)是一个由多维数组对象和用于处理数组的例程集合组成的库。
 Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

其部分功能如下:
        ①ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
        ②用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
        ③用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
        ④线性代数、随机数生成以及傅里叶变换功能。
        ⑤用于集成由C、C++、Fortran等语言编写的代码的工具。

NumPy的安装

直接安装
        在cmd中进入到  python的安装目录下的scripts文件夹中,执行下面的命令:
pip install numpy

离线安装

1、打开网址https://pypi.org/project/numpy/,找到安装的python版本对应的numpy版本。

         2、将numpy下载到  python的安装目录下的scripts文件夹中;
        3、然后在cmd中执行以下命令:

pip install numpy-1.14.5-cp36-none-win_amd64.whl

ndarray多维数组

简介
        NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。
        ndarray是一个通用的同构数据容器,也就是说,其中的所有元素必须是相同类型的。
        每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象)

date.shape
data.dtype

创建ndarray

        创建数组最简单的办法就是使用array函数。它接受一切序列的对象(包括其他的数组),然后产生一个新的含有传入数据的NumPy数组。
        嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组。
函数 描述
array 将输入数据(列表、元组、数据或其他序列类型)转换为ndarray;默认直接复制输入数据;
asarray 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制;
arange 类似内置range,但返回的是一个ndarray而不是列表;
    ones、ones_like

前者根据指定的形状和dtype创建一个全1数组,后者以另一个数组为参数,并创建一个全1数组;

   zeros、zeros_like 类似于ones和ones_like,产生的是全0数组;
  empty、empty_like 创建新数组,只分配内存空间但不填充任何值;
eye、identity 创建一个正方的N * N 单位矩阵(对角线为1,其他为0);

实现代

import numpy as np
data1 = [6,7.5,8,0,1] #创建列表
arr1 = np.array(data1) #转换为数组
print(arr1)
print(arr1.dtype) #数据类型保存在dtype对象中 data2 = [[1,2,3,4],[5,6,7,8]] #创建嵌套序列(由等长列表组成的列表)
arr2 = np.array(data2) #转换为多维数组
print(arr2)
print(arr1.dtype)
print(arr1.shape) print(np.zeros(10)) #创建指定长度(10)的全0数组
print(np.ones(2,4)) #创建指定长度的(2行4列二维)的全1数组
print(np.empty((2, 3, 2)))#创建指定长度的(2行3列2层的三维)的随机数数组

ndarray的数据类型

        dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息。
        dtype是NumPy如此强大和灵活的原因之一。多数情况下,它们直接映射到相应的机器表示,这使得“读写磁盘上的二进制数据流”以及“集成低级语言代码(如C、Fortran)”等工作变得更加简单。
        数值型dtype的命名方式相同:一个类型名(如float或int),后面跟一个用于表示各元素位长的数字。
        标准的双精度浮点值(即Python中的float对象)需要占用8字节(即64位)。因此,该类型在NumPy中就记作float64。
        用data.dtype()来显示数据类型


下图列示了NumPy所支持的全部数据类型:
类型 描述
bool 用一位存储的布尔类型(值为TRUE或FALSE)
inti 由所在平台决定其精度的整数(一般为int32或int64)
int8 整数,范围为  -128 至 127
int16 整数,范围为  -32 768 至 32 767
int32 整数,范围为  -231 至 231 - 1
int64 整数,范围为  -263 至 263 - 1
uint8 无符号整数,范围为 0 至 255
uint16 无符号整数,范围为 0 至 65 535
uint32 无符号整数,范围为 0 至232 - 1
uint64 无符号整数,范围为 0至 264 - 1
float16 半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数
float32 单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数
float64或float 双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数
complex64 复数,分别用两个32位浮点数表示实部和虚部
complex128或complex 复数,分别用两个64位浮点数表示实部和虚部

Python基础 — NumPy的更多相关文章

  1. Python基础-numpy

    创建数组 numpy.array():括号内可以是列表.元祖.数组.生成器等 numpy.arange():类似range(),在给定间隔内返回均匀间隔的值 #numpy.linspace() 返回在 ...

  2. python基础--numpy.random

    # *_*coding:utf-8 *_* # athor:auto import numpy.random #rand(d0, d1, ..., dn)n维随机值 data0 = numpy.ran ...

  3. python基础--numpy.dot

    # *_*coding:utf-8 *_* # athor:auto import numpy dot = numpy.dot([0.100, 0.200],2.) print(dot) #[ 0.2 ...

  4. Python基础——numpy库的使用

    1.numpy库简介:    NumPy提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库.专为进行严格的数字处理而产生. 2.numpy库使用: 注:由于深度学习中存在大量的 ...

  5. python基础系列教程,数学基础系列教程,数据分析系列教程,神经网络系列教程,深度学习系列视频教程分享交流

    大家好,我是一个技术爱好者,目前对大数据人工智能很是痴迷,虽然学历只有高中,目前正在大踏步的向着人工智能狂奔,如果你也想学习,那就来吧 我的学习进度python基础(Numpy,pandas,matp ...

  6. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

  7. Python数据分析基础——Numpy tutorial

    参考link  https://docs.scipy.org/doc/numpy-dev/user/quickstart.html 基础 Numpy主要用于处理多维数组,数组中元素通常是数字,索引值为 ...

  8. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  9. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

随机推荐

  1. python 中文转码 Excel读csv

    大家都知道Excel读csv用的是ascii编码,我认为,ascii没有中文,所以这里指的应该是utf-8. 我遇到的问题是这样的,unity项目只能用txt文件,有一堆数据表用txt的文档保存下来了 ...

  2. 贪心算法求解活动安排<算法分析>

    一.实验内容及要求 1.要求按贪心算法原理求解问题: 2.要求手工输入s[10]及f[10],其中注意自己判断s[i]<f[i]: 3.要求显示所有活动及最优活动安排的i事件列表.二.实验步骤  ...

  3. 前端开发:HTML

    静态页面: 没有与用户进行交互,而仅仅是用户浏览的一个网页 动态网页:就是用户不仅仅可以浏览网页,还可以与服务器交互 Web前端应用场景:公司官网(在PC通过浏览器访问公司网站).移动端网页(在手机上 ...

  4. 洛谷P1186 玛丽卡

    题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城 ...

  5. Linux下汇编语言学习笔记55 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  6. __asm

    来源:http://msdn.microsoft.com/zh-cn/library/45yd4tzz.aspx Microsoft 专用 __asm 关键字调用一个内联汇编,并且可以显示,每当 c. ...

  7. UVA 674_Coin Change

    题意: 给定一个数,求用1,5,10,25,50有多少种组合方式. 分析: 简单计数dp,dp[i][j]表示由前i+1个元素组成j的种数,注意dp[i][0]初始化为1,因为一个元素也不选的方法总是 ...

  8. <a href="ip地址" target=""_blank">a里面的target</a>

    HTML <a> 标签的 target 属性 定义和用法 <a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a> 标签内包含一个 targe ...

  9. wget下载网络图片

    wget http.......  --no-check-certificate

  10. how to read openstack code: Neutron architecture

    今天这一章节非常重要.我们知道neutron是一个非常复杂的系统,由很多组件构成.研究这样一个复杂的系统,正确的顺序应该是现在宏观上对其整体结构有所了解,然后再由针对性的对其组件进行深入了解.本章要做 ...