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. CMM

    CMM CMM的基本概念 CMM(Capability Maturity Model for Software) 它是对于软件组织在定义,实施,度量,控制和改善其软件过程的实践中各个发展阶段的描述.其 ...

  2. POJ 3255_Roadblocks

    题意: 无向图,求单源次短路,每条边可以走多次. 分析: 对于每个点记录最短路和次短路,次短路可以是由最短路+边或者是次短路+边更新而来.在更新每个点的最短路时,相应更新次短路,如果最短路更新了,就令 ...

  3. 【转】golang中的并行与并发

    原文:http://blog.csdn.net/taohaoge/article/details/27970421 ------------------------------------------ ...

  4. 戴尔PowerEdge服务器RAID控制卡的配置

    示例演示环境:PowerEdge R620 + H710p Raid控制卡  + 9 x 300G 10k SAS 硬盘 H310.H710.H810的配置方法与H710P大致相同,在此不再累述. 特 ...

  5. Centos samba install

    Ready Change Root Password passwd root 在提示下建立新密码 静态IP vi /etc/sysconfig/network-scripts/ifcfg-eth0  ...

  6. 经常使用的android设计模式

    一般来说,经常使用的android设计模式有下面8种:单例.工厂.观察者.代理.命令.适配器.合成.訪问者.   单例模式:目的是为了让系统中仅仅有一个调用对象,缺点是单例使其它程序过分依赖它,并且不 ...

  7. [Debug] Node-sass

    Meet some problem when trying to install node-sass on windwos. Company has proxy settings, need to r ...

  8. 编程算法 - 两个升序列的同样元素 代码(C)

    两个升序列的同样元素 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 两个升序列的同样元素, 须要使用两个指针, 依次遍历, 假设相等输出, 假设小于或 ...

  9. PAT Rational Arithmetic (20)

    题目描写叙述 For two rational numbers, your task is to implement the basic arithmetics, that is, to calcul ...

  10. Python爬虫开发【第1篇】【urllib2】

    1.urlopen # urllib2_urlopen.py # 导入urllib2 库 import urllib2 # 向指定的url发送请求,并返回服务器响应的类文件对象,urlopen中有da ...