一、Numpy概念

Numpy(Numerical Python的简称)是Python科学计算的基础包。它提供了以下功能:

  1. 快速高效的多维数组对象ndarray。
  2. 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
  3. 用于读写硬盘上基于数组的数据集的工具。
  4. 线性代数运算、傅里叶变换,以及随机数生成。
  5. 用于将C、C++、Fortran代码集成到Python的工具。

除了为Python提供快速的数组处理能力,Numpy在数据分析方面还有另外一个主要作用,即作为在算法之间传递数据的容器。对于数值型数据,Numpy数组在存储和处理数据时要比内置的Python数据结构高效的多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作Numpy数组中的数据,无需进行任何数据复制工作。

二、Numpy的突出优势

与Python的基本数据类型相比,其具有以下突出优势:

  1. 提供功能更强大的高维数组(N-dimensional)对象
  2. 强大的广播功能(broadcasting),便于矢量化数组操作(直接对数组进行数据处理,而不需要编写循环)
  3. 集成了 C/C++ 以及 Fortran代码编写的工具
  4. 包含常用的线性代数、傅里叶变换,以及随机数生成
  5. 提供易用的C API,可以将数据传递到使用低级语言编写的外部库,也可以使外部库返回NumPy数组数据到Python
  6. 通用的数组算法,例如:sorting,unique和set等操作

NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和ufunc(universal function object)。ndarray用来存储单一数据类型的多维数组,ufunc是对数组进行处理的函数。

三、ndarray对象

Numpy的核心是ndarray对象,它封装了同质数据类型的n维数组,与python序列有以下区别:

ndarray在创建时有固定大小:不同于python中的列表,更改ndarray的大小将创建一个新的数组并删除原始数据 ndarray中的元素有相同的数据类型 ndarray便于对大量数据进行高级数学操作:通常会比python内置序列更高效也更简单 越来越多的基于python的科学和数学软件使用ndarray数组:只知道python的内置序列类型是不够的,还需要知道如何使用ndaray数组

ndarray数据类型

Numpy支持比Python更多种类的数值类型,参见:数据类型

numpy数据类型 python类型 描述
bool_ bool 布尔(True或False),存储为一个字节
int_ int 默认整数类型(与C long相同;通常为int64或int32)
intc   与C int(通常为int32或int64)相同
intp   用于索引的整数(与C ssize_t相同;通常为int32或int64)
int8   字节(-128到127)
int16   整数(-32768到32767)
int32   整数(-2147483648至2147483647)
int64   整数(-9223372036854775808至9223372036854775807)
uint8   无符号整数(0到255)
uint16   无符号整数(0到65535)
uint32   无符号整数(0至4294967295)
uint64   无符号整数(0至18446744073709551615)
float_ float float64的简写。
float16   半精度浮点:符号位,5位指数,10位尾数
float32   单精度浮点:符号位,8位指数,23位尾数
float64   双精度浮点:符号位,11位指数,52位尾数
complex_ complex complex128的简写。
complex64   复数,由两个32位浮点(实数和虚数分量)
complex128   复数,由两个64位浮点(实数和虚数分量)
1
2
3
4
5
6
7
8
9
10
11
12
# 作为类型名称设置数组中元素的类型,为了向后兼容,也可以使用float或字符串'float'
x = np.array([1,2,3],dtype=np.float)
print x
 
# 查看数据类型
print x.dtype
 
# 作为单值类型转化函数
print np.int32(1.3)
 
# 转换数组的类型,会产生新的副本
print x.astype(np.int)

结果:

1
2
3
4
[ 123.]
float64
1
[1 2 3]

感谢阅读上海尚学堂文章,获取更多内容或支持请点击上海python培训

Python科学计算基础包-Numpy的更多相关文章

  1. 科学计算基础包——Numpy

    一.NumPy简介 NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. 1.NumPy的主要功能 (1)ndarray:一个多维数组结构,高效且节省空间. (2)无需 ...

  2. windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等

    安装matplotlib: pip install matplotlib 背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器 ...

  3. python科学计算库的numpy基础知识,完美抽象多维数组(原创)

    #导入科学计算库 #起别名避免重名 import numpy as np #小技巧:从外往内看==从左往右看 从内往外看==从右往左看 #打印版本号 print(np.version.version) ...

  4. python 科学计算基础库安装

    1.numpyNumPy(Numeric Python)是用Python进行科学计算的基本软件包. NumPy是Python编程语言的扩展,增加了对大型多维数组和矩阵的支持,以及一个大型的高级数学函数 ...

  5. Python科学计算库灬numpy

    Numpy NumPy是一个功能强大的Python库,主要用于对多维数组执行计算.Numpy许多底层函数实际上是用C编写的,因此它的矩阵向量计算速度是原生Python中无法比拟的. numpy属性 维 ...

  6. python科学计算基础知识

    1.导入基本函数库 import numpy as np 2.获取矩阵元素字节数 a=np.array([1,2,3],dtype=np.float32) a.itemsizeoutput: 4 3. ...

  7. Python科学计算:用NumPy快速处理数据

    创建数组 import numpy as np a=np.array([1,2,3]) b=np.array([[1,2,3],[4,5,6],[7,8,9]]) b[1,1]=10 print(a. ...

  8. Python科学计算学习一 NumPy 快速处理数据

    1 创建数组 (1) array(boject, dtype=None, copy=True, order=None, subok=False, ndmin=0) a = array([1, 2, 3 ...

  9. Python科学计算库

    Python科学计算库 一.numpy库和matplotlib库的学习 (1)numpy库介绍:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成 ...

随机推荐

  1. figure 的使用

    1.figure语法及操作(1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...

  2. django ajax 及批量插入数据 分页器

    ``` Ajax 前端朝后端发送请求都有哪些方式 a标签href GET请求 浏览器输入url GET请求 form表单 GET/POST请求 Ajax GET/POST请求 前端朝后端发送数据的编码 ...

  3. Thymleaf 从某处(不包含某处)开始截取字符串到末尾

    简单描述:数据库存放的是id+name,但是做展示的时候,只需要展示name,不展示id.不管是在前台还是在后台,使用传统的方法截取,也是可以的,但是thymleaf提供了一种截取字符串,可以实现从某 ...

  4. JS中函数常见的表现形式以及立即执行函数

    函数常见的几种表现形式: 1.一般形式(函数声明): 会进行函数的预解释,函数会进行声明和定义,在函数体前面或则后面都可以进行调用. 2.函数表达式(匿名函数): 会进行函数的预解析,函数会进行声明但 ...

  5. Flink写入kafka时,只写入kafka的部分Partitioner,无法写所有的Partitioner问题

    1. 写在前面 在利用flink实时计算的时候,往往会从kafka读取数据写入数据到kafka,但会发现当kafka多个Partitioner时,特别在P量级数据为了kafka的性能kafka的节点有 ...

  6. RabbitMQ安装手册

    1.   下载 下载地址:http://www.rabbitmq.com/download.html 2.   windows下安装 2.1.  安装Erlang 下载:http://www.erla ...

  7. C++ this指针

    成员函数不能定义 this 形参,而是由编译器隐含地定义.成员函数的函数体可以显式使用 this 指针,但不是必须这么做.如果对类成员的引用没有限定,编译器会将这种引用处理成通过 this 指针的引用 ...

  8. 恢复数据库的redo日志文件(由于异常关机引起)

    需要事先进入sqlplus select * from v$log 打印相关文件信息 1.recover database until cancel(recover database using ba ...

  9. 彻底卸载MySQL服务

    前言 由于安装某个项目的执行文件,提示要卸载MySQL以便它自身MySQL安装,然后我禁用了MYSQL服务,再把这个文件夹删除后,发现还是提示请卸载MYSQL服务. ----------------- ...

  10. Objective-C中整数与字符串的相互转换

    2013/4/15整理: 将整数转换成字符串 Convert Integer to NSString: 方法一: int Value = 112233; NSString *ValueString = ...