Numpy get started

NumPy中我们要学习的核心其实就是一个 ndarray n多 d dimension 维度 array数组 多维数组

创建一个ndarray的几种方法

import numpy as np

1. 使用np.array()创建多维数组

np.array([1,2,3])  # 多维数组的构造函数
# 传入 列表 就可以创建响应的多维数组

2. 使用np的常用函数(routines)创建

1) np.ones(shape, dtype=None)
功能:按照指定形状创建多维数组,并用1填充
参数:
shape 用于指定创建的多维数组的形状 可以传入2 或者 (2,3)
dtype 数据的类型 np.int8 np.float64
返回值:返回创建好的多维数组数组
测试代码:
shape用来指定创建的多维数组的 形状
np.ones(2) # 传入2 产生有两个元素的多维数组
np.ones(shape=(2,3)) # ones创建出来的多维数组 内部的值 都是用1来填充
np.ones(shape=(2,3,3,3,3))
np.ones(shape=2) # 一维
np.ones(shape=(2,3)) # 二维
np.ones(shape=(2,3,3)) # 这是一个三维数组 里面有两个元素 里面套了3个元素
np.ones(shape=(5,3,4)) # 这是一个三维数组 数组里面有5个元素 里面有3个元素 里面有4个元素
2) np.zeros(shape, dtype=float)
功能类似np.zeros只不过不是用1填充 而是用0填充
3) np.full(shape, fill_value, dtype=None)
# shape用来指定形状, fill_value用来指定用什么值来填充
示例:
np.full(shape=(2,3),fill_value=5)
4) np.eye(N, dtype=float)
功能:创建一个N行N列的方阵(方阵就是行和列的数量相等的矩阵)
参数:N 指定矩阵中有多少行(也是多少列)
返回值: 主对角线上是1,其他地方是0的方阵(单位矩阵)
主对角线为1其他的位置为0(左上角的右下角的对角线叫做主对角线)
示例:
np.eye(5)
# 单位矩阵
# 主对角线上是1 其他地方是0的矩阵就是单位矩阵
# 左上角到右下角的对角线 就是主对角线
# 单位矩阵和其他矩阵相乘 得到的结果 还是原来的矩阵
结果展示:
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
5.1) np.linspace(start, stop, num=50, dtype=None)
功能:把start到stop的这个范围的数,等分成num份儿,填入数组
5.2) np.logspace(start, stop, num=50, dtype=None)
功能:把start到stop的这个范围的数,等分成num份儿,获得的值作为10的指数,求出来的值,填入数组

参数说明:

# start, stop, num=50
  # 从几开始 到几结束 num指定是要多少个 (0,5) (0,4] [0,5) [start,end]
  # np.linspace(1,5,3)
  # np.linspace(1,5,2) # 从1到5 的 等差数列
  # np.linspace(1,5,4)
  np.linspace(1,5,5)

6) np.arange([start, ]stop, [step, ]dtype=None)
从start,到end,每隔step取一个值,放入一个数组

# [start,] stop[, step,]
# np.arange(5) # 不指定start和step start默认是0 step默认是1 [0,5)每隔1取一个
# np.arange(1,5) # 从1开始到5结束 每隔一个取一个
np.arange(1,11,2)

7) np.random.randint(low, high=None, size=None, dtype='l')
从low到high的范围随机取整数,填充多维数组 size用于指定数组的形状 如 2 (2,3)
8) np.random.randn(d0, d1, ..., dn)
传入几个参数,就创建几维数组 产生以0为中心 方差为1 的 标准正太分布 的随机数 填充数组 如 np.random.randn(2,3,3) 产生一个三维数组 数组中有两个数组 两个数组中分别有三个数组 三个数组中每个都有三个元素
# 里面的参数 用来指定各个维度中元素的个数
np.random.randn(2,3) # 产生一个多维数组 里面有2个元素 里面有三个元素
# 标准正态分布 平均值是0 标准差是1 的正态分布 就是 标准正态分布
# randn 按照指定的形状去产生 多维数组 里面的值用随机值来填充(随机值的产生 满足标准正态分布)
9) np.random.normal(loc=0.0, scale=1.0, size=None)
np.random.randn是标准正态分布(以0为中心,方差是1) normal是可以指定中心和方差的一般正态分布 loc 正态分别的中心 scale 正态分布的变化范围 size 数组的形状 如 2 (2,3)
# loc=0.0, scale=1.0, size=None
# 指定分布中心 scale用来指定标准差 size指定形状
# np.random.normal(loc=0,scale=1,size=(2,3))
np.random.normal(loc=175,scale=15,size=(7,11))
# np.random.normal(loc=175,scale=15,size=(3,4))

naarray的属性

4个必记参数:

ndim:维度

shape:形状(各维度的长度)

size:总长度

dtype:元素类型

数组应用:用于绘图

import matplotlib.pyplot as plt
# imread可以读取图片
jin = plt.imread('../backup/jin.png')
jin.shape # 这是一个三维数组 里面有273个元素 里面有411个元素 里面有3个元素
plt.imshow(jin)

数据分析库之Numpy的更多相关文章

  1. 数据分析与展示——NumPy库入门

    这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组 ...

  2. 数据分析三剑客之numpy

    Numpy 简介 数据分析三剑客:Numpy,Pandas,Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算, ...

  3. Python数据分析库pandas基本操作

    Python数据分析库pandas基本操作2017年02月20日 17:09:06 birdlove1987 阅读数:22631 标签: python 数据分析 pandas 更多 个人分类: Pyt ...

  4. 在量化金融中15个最流行的Python数据分析库

    Python是当今应用最广泛的编程语言之一,以其效率和代码可读性著称.作为一个科学数据的编程语言,Python介于R和java之间,前者主要集中在数据分析和可视化,而后者主要应用于大型应用.这种灵活性 ...

  5. python数据分析三剑客之: Numpy

    数据分析三剑客之: Numpy 一丶Numpy的使用 ​ numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...

  6. 预备知识-python核心用法常用数据分析库(上)

    1.预备知识-python核心用法常用数据分析库(上) 目录 1.预备知识-python核心用法常用数据分析库(上) 概述 实验环境 任务一:环境安装与配置 [实验目标] [实验步骤] 任务二:Pan ...

  7. 数据分析与展示——NumPy数据存取与函数

    NumPy库入门 NumPy数据存取和函数 数据的CSV文件存取 CSV文件 CSV(Comma-Separated Value,逗号分隔值)是一种常见的文件格式,用来存储批量数据. np.savet ...

  8. 利用matplotlib库和numpy库画数学图形

    首先,电脑要安装到matplotlib库和numpy库,这可以通过到命令符那里输入“pip install matplotlib ”,两个操作一样 其次,参照下列代码: import numpy as ...

  9. python 数据分析库介绍

    1 引言 高效处理数据的python工具: 与外界进行交互: 读写各种文件格式和数据库 准备: 对数据进行清理.修整.整合.规范化.重塑.切片切换.变形等处理以便进行分析 转换: 对数据集做一些数学和 ...

随机推荐

  1. 11.2-uC/OS-III添加任务到就绪队列

    1.uC/OS-III提供很多服务可以把任务添加到就绪列表中. 最明显的服务是OSTaskCreate(), 它通常创建准备运行的任务并将任务放入就绪列表中.如图6-6所示,就绪列表中该优先级中已经有 ...

  2. 如何相互转换逗号分隔的字符串和List【转】

    将逗号分隔的字符串转换为List 方法 1: 利用JDK的Arrays类 String str = "a,b,c"; List<String> result = Arr ...

  3. react 中的return 什么时候用小括号,什么时候用大括号啊

    return( <div>....</div> ) return( <Component/> ) return{...} 1:html 2:react 组件 3:j ...

  4. android 前台服务不显示通知

    原因可以在哪里写了执行完成后就自动结束的吧 导致前台服务没有出现 如我 @Override public int onStartCommand(Intent intent, int flags, in ...

  5. Hibernate查询操作

    操作前需要创建好Hibernate项目,创建项目,可参考:http://www.cnblogs.com/zhaojinyan/p/9336174.html 一下的例子是从其他贴子粘过来的(知识无国界! ...

  6. HTTPS学习笔记一----HTTPS的基础理论知识

    首先推荐一本书,<HTTP权威指南>我就是看这本书入门的,对http协议有了更好的理解,学习https的理论知识我认为需要了解以下几点,需要一步步的深入学习: 1.HTTPS的基本概念? ...

  7. linux以16进制查看文件

    vim 先用vim -b data 以2进制打开文件,然后用xxd工具转化,在vim的命令行模式下: :%!xxd        --将当前文本转化为16进制格式 :%!xxd -r    --将16 ...

  8. 论文阅读(XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network)

    XiangBai——[AAAI2017]TextBoxes:A Fast Text Detector with a Single Deep Neural Network 目录 作者和相关链接 方法概括 ...

  9. npm 传入参数

    你可以运行类似npm start 8080的代码,并且不需要去修改script.js或者配置文件: 例如,在你的"scripts"JSON值,包括-- "start&qu ...

  10. MyBatis注解方式批量插入操作

    @Insert({ "<script>", "insert into table_name(column1, column2, column3) values ...