学习链接:http://www.runoob.com/numpy/numpy-tutorial.html

简介:

numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算。它支持大量的维度与数据运算还针对数组运算提供大量的数学函数库。它包含:一个强大的n维数组对象ndarray、广播功能函数、整合c/c++/fortran的工具、线性代数、傅里叶变化与随机数生成等功能

numPy应用

numpy通常与SciPy(Scientific Python)和Matplotlib(绘图库)配合使用,来代替MatLab,构成为强大的科学计算环境,帮助我们通过Python学习数据科学或者机器学习

安装:

$pip install numPy

测试安装成功:

>>> from numpy import * #导入numpy库

>>> eye(4) #生成对角矩阵

array([[1., 0., 0., 0.],

[0., 1., 0., 0.],

[0., 0., 1., 0.],

[0., 0., 0., 1.]])

使用

*)numpy.linspace()

像python中的range一般,返回有指定的间隔产生的均匀间隔的数组,值得注意的是有dtype这个参数

*)numpy. arange()

值在半开区间里被生成[start,stop),对于int类型的参数,函数等同于python中的range,但是返回一个ndarray而不是list

但是对于非整形的step参数,每次返回的结果往往不一致,对于这种情况,选择numpy.linspace()更好

*)numpy.zeros()

返回由0填充的数组,能指定填充的0的dtype

*)numpy.column_stack()

将一系列的1-D(我认为是1维)arrays堆叠为column以此来将他们转化为一个2维array,二维数组被堆叠为和原来的一样

*)

*)list to array

参考链接:https://docs.scipy.org/doc/numpy/reference/generated/numpy.asarray.html

>>> a = [1, 2]

>>> np.asarray(a)

array([1, 2])

numpy random模块参考链接:https://www.cnblogs.com/hhh5460/p/4324967.html#top(官方文档翻译)

*)np.random.randint(low[,high,size,dtype])

参考链接:https://www.jianshu.com/p/36a4bbb5536e

>>> np.random.randint(0,20,4)

array([ 1, 9, 17, 11])

>>> np.random.randint(0,20,[4,1])#结果中包含4个数组,每个一个

array([[16],

[19],

[ 5],

[ 9]])

>>> np.random.randint(0,20,[4])

array([ 4, 6, 11, 14])

>>> np.random.randint(0,20,4,1)

Traceback (most recent call last):

File "", line 1, in

File "mtrand.pyx", line 973, in mtrand.RandomState.randint

TypeError: data type not understood

1)np.random.normal()生成高斯分布的概率密度随机数

参考链接:https://blog.csdn.net/qiqiaiairen/article/details/52505667

这个方法返回一个正态分布的数组?(正态分布、又称高斯分布、钟形曲线)

numpy.random.normal(loc=0.0, scale=1.0, size=None)

参数含义:

loc:(float类型)概率分布的均值,是对应于整个分布的中心而言

scale:(float类型)概率分布的标准差(标准差反应集合内个体的离散程度,越大越离散),对应于分布的宽度而言(即高度一定?),scale越大越矮胖,scale越小越瘦高

size:(int or tuple of ints类型)输出的shape(?),默认为None,只输出一个值

这个方法返回一个正态分布的数组

>>> numpy.random.normal(0,1,20)

array([-0.98305884, -0.79340779, 0.69865242, 1.10930775, 0.17458143,

0.88452427, 0.92862304, -1.27837941, -0.88772762, 0.86100981,

3.06262977, 1.66589188, -1.34269035, -0.13672729, 0.01154996,

-1.88304306, 0.35375017, -0.88784919, 2.77849309, 0.68915905])

2)np.range与range

range是python自带的库

参考链接:https://blog.csdn.net/lanchunhui/article/details/49493633

三个参数(S,E,Step_size)第一个参数是起点,第三个是步长,返回一个不包括第二个参数的数据序列

numpy里的数据类型、数据类型对象dtype

numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型。详情见参考链接

数据类型对象 (dtype)

dtype是用来描述与数组对应的内存区域如何使用(懵逼,不只有一种使用方法吗?)这依赖如下几个方面:

数据的类型(整数,浮点数或者 Python 对象)

数据的大小(例如, 整数使用多少个字节存储)

数据的字节顺序(小端法或大端法)

字节顺序是通过对数据类型预先设定"<"或">"来决定的。"<"意味着小端法(最小值存储在最小的地址,即低位组放在最前面)。">"意味着大端法(最重要的字节存储在最小的地址,即高位组放在最前面)。

在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分

如果数据类型是子数组,它的形状和数据类型

dtype 对象是使用以下语法构造的:

numpy.dtype(object, align, copy)

object - 要转换为的数据类型对象

align - 如果为 true,填充字段使其类似 C 的结构体。(继续懵逼)

copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用

创建dtype的例子:

>>> dt=np.dtype(np.int32)# 使用标量类型#不要忘记前面的np.

>>> print(dt)

int32#直接输出的这个

>>>

之后有列举了一些创建dtype的其他实例,介绍了一些特殊的格式如:

int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替

特殊的有一个字节顺序标注的

import numpy as np

# 字节顺序标注

dt = np.dtype('

print(dt)

#结果

int32

之后又展示了结构化数据类型的创建

# 类型字段名可以用于存取实际的 age 列

import numpy as np

dt = np.dtype([('age',np.int8)])

a = np.array([(10,),(20,),(30,)], dtype = dt)

print(a['age'])

#结果:

[10 20 30]

问题

因为上面哪个“dtype是用来描述与数组对应的内存区域如何使用”的疑惑还没有解决,而且在后面我也没有看到dtype是怎样使用的,只是输出了int32之类的东西,难道上面哪一个“结构化”是使用,

而且numpy的一些方法如numpy.linspace()又dtype这个参数,我也不知道有什么用。

python numpy数据类型_python numPy模块 与numpy里的数据类型、数据类型对象dtype相关推荐

  1. python之numpy基础_Python知识普及:Numpy基础操作

    原标题:Python知识普及:Numpy基础操作 Numpy基础数据结构 创建数组 Numpy通用函数 import numpy as np # reshape 改变数组维度形状 ar1 = np.a ...

  2. python动画精灵_Python精灵模块简介

    一.简介: 本模块命令名为精灵模块,或叫角色模块.本模块已经上传到了pypi网站,通过在cmd窗口下输入pip install sprites即可安装使用. 精灵模块主要提供继承自Turtle的Spr ...

  3. python dcf估值_Python 常用模块

    本节内容 模块介绍 os 模块 sys 模块 time & datetime模块 random 模块 json & picle shutil 模块 shelve 模块 xml 模块 c ...

  4. python数组初始化_Python科学计算库Numpy数组的初始化和基本操作

    umPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵 ...

  5. python布尔系列_python数据分析类库系列-Numpy之布尔型索引

    我们了解了如何使用索引进行切片以及选择 ndarray 元素.当我们知道要选择的元素的确切索引时,这些方法很有用.但是,在很多情况下,我们不知道要选择的元素的索引.例如,假设有一个 10,000 x ...

  6. python 数组维度_python – 非常基本的Numpy数组维度可视化

    NumPy中ndarray的解剖结构如下所示:(来源: Physics Dept, Cornell Uni) 一旦离开2D空间并进入3D或更高维空间,行和列的概念就不再有意义了.但是你仍然可以直观地理 ...

  7. python 柱状图 居中_python matplotlib模块: bar(柱状图)

    plt模块的bar方法可以帮助我们绘制竖着的柱状图. 功能非常强大, 使用起来非常简单, 详细注释放在源码. 其中各种颜色的hex值可以从: 各种颜色hex值获取 源码: # coding=utf-8 ...

  8. 如何显示python的内置模块_python之模块(内置模块)

    内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.sys 用于提供对Python解释器相关的操作: 1 sys.argv #命令行参数List,第一个元素是程 ...

  9. python莫比乌斯环_python基础|模块

    1 模块简介 在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块.模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写 ...

  10. python pillow库_python pillow模块用法

    pillow Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库.pillow可以说已经取代了PIL,将其封装成python的库(pip即可安装),且支持pytho ...

最新文章

  1. Android 趣味应用—— 短信编辑器
  2. 3-uboot-spl代码流程
  3. HDU3939(毕达哥拉斯三元组的解)
  4. JVM类加载理解(线程上下文类加载器、Tomcat类加载器)
  5. linux系统 远程桌面连接到服务器,Ubuntu 14.04服务器远程桌面连接
  6. 大数据分析有哪些特征
  7. python实现邮件客户端_SMTP邮件客户端Python
  8. Vijos OJ搭建
  9. 二叉树前中后序遍历及其本质
  10. AE duik插件运用-人物行走动画
  11. 手机入侵修改服务器数据,手机怎么入侵服务器修改数据库
  12. linux cpu占用分析,Linux下CPU占用率高分析方法
  13. php mp3播放列表,ubuntu的本地MP3音乐播放器mpd+mpc
  14. android 渠道配置manifest,Android studio 配置多渠道打包配置
  15. 云虚拟主机升级云服务器,云虚拟主机升级
  16. 该网页无法访问未连接上服务器是什么意思,浏览器打不开该网页,因为无法连接到服务器...
  17. java《面向对象综合题》
  18. Unity3d-打飞碟工厂模式
  19. Kafka Shell Lag
  20. git checkout tag

热门文章

  1. 体验 PHP under .NET Core
  2. .NET Core 工具中的新内容
  3. ASP.NET Core + Angular 2 Template for Visual Studio
  4. SuperSocket源码解析之开篇
  5. docker遇到问题归纳
  6. 在anaconda中安装tensorflow-GPU版本
  7. Android之封装倒计时页面
  8. C语言之在结构体里面放很多函数指针
  9. OPENSSL ENGINE机制
  10. python 写入excel_一行一行整理EXCEL表太麻烦,试试python脚本,1秒写入数据