1、数据的纬度

维度:一组数据的组织形式

1.1 一维数据

一维数据由对等关系的有序或无序数据构成,采用线性方式组织 ,对应列表、数组和集合等概念

列表:数据类型可以不同 ,如 3.1413, 'pi', 3.1404, [3.1401, 3.1349], '3.1376'

数组:数据类型相同 。如:3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376

1.2 二维数据

二维数据由多个一维数据构成,是一维数据的组合形式。表格是典型的二维数据其中,表头是二维数据的一部分 。

1.3 多维数据

多维数据由一维或二维数据在新维度上扩展形成

1.4 高维数据

高维数据仅利用最基本的二元关系展示数据间的复杂结构

2、NumPy的数组对象:ndarray

NumPy是一个开源的Python科学计算基础库,包含:

• 一个强大的N维数组对象 ndarray

• 广播功能函数

• 整合C/C++/Fortran代码的工具

• 线性代数、傅里叶变换、随机数生成等功能

NumPy是SciPy、 Pandas等数据处理或科学计算库的基础

2.1 NumPy的引用

2.2 N维数组对象:ndarray

例:计算 A2+B3,其中,A和B是一维数组 。

def pysum():
a=[0,1,2,3,4]
b=[9,8,7,6,5]
c=[]
for i in range(len(a)):
c.append(a[i]**2+b[i]**3) return c
print(pysum())

利用python 已有的列表类型和循环的方法可以求出结果,但是程序繁琐。

>>> print (npsum())
None
>>> import numpy as np
>>> def npsum():
a=np.array([0,1,2,3,4])
b=np.array([9,8,7,6,5])
c=a**2+b**3
return c
>>> print(npsum())
[729 513 347 225 141]

利用numpy方式编程,可以看出,并没有使用循环,更简洁。

2.2.1  

• 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据

• 设置专门的数组对象,经过优化,可以提升这类应用的运算速度

观察:科学计算中,一个维度所有数据的类型往往相同

• 数组对象采用相同的数据类型,有助于节省运算和存储空间

ndarray是一个多维数组对象,由两部分构成:

• 实际的数据

• 描述这些数据的元数据(数据维度、数据类型等)ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始

2.2.2

np.array()输出成[]形式,元素由空格分割 。

8位(0或者1)组成一个字节。

2.3

2.3.1ndarray数组的元素类型

对比:Python语法仅支持整数、浮点数和复数3种类型

• 科学计算涉及数据较多,对存储和性能都有较高要求

• 对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能

• 对元素类型精细定义,有助于程序员对程序规模有合理评估

2.3.2

非同质的ndarray

非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用

2.4 ndarray数组的创建

创建方法

• 从Python中的列表、元组等类型创建ndarray数组

• 使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等

• 从字节流(raw bytes)中创建ndarray数组

• 从文件中读取特定格式,创建ndarray数组

2.4.1 从Python中的列表、元组等类型创建ndarray数组

x = np.array(list/tuple)

x = np.array(list/tuple, dtype=np.float32)

2.4.2  使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等

2.5 ndarray数组的变换

2.5.1 纬度的变换

a并没有发生变化

a发生改变

输出一维,但是a并没有发生变化

2.5.2 ndarray数组的类型变换

new_a = a.astype(new_type)

2.5.3 ndarray数组向列表的转换

ls = a.tolist()

2.6 ndarray数组的操作

数组的索引和切片

索引:找到特定位置的数据

切片:找到特定位置的一组数据

一维数组的索引和切片:与Python的列表类似

多维数组的索引:

多维数组的切片:

2.7 ndarray数组的运算

2.7.1 数组与标量之间的运算

2.7.2 NumPy一元函数

2.7.3NumPy二元函数

Python——NumPy库入门的更多相关文章

  1. Python数据分析与展示(1)-数据分析之表示(1)-NumPy库入门

    Numpy库入门 从一个数据到一组数据 维度:一组数据的组织形式 一维数据:由对等关系的有序或无序数据构成,采用线性方式组织. 可用类型:对应列表.数组和集合 不同点: 列表:数据类型可以不同 数组: ...

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

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

  3. python numpy库np.percentile用法说明

    在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可…… a = range(1,101) #求取a数列第90%分位的数值 np.per ...

  4. 数据分析之Numpy库入门

    1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列 ...

  5. 机器学习 Numpy库入门

    2017-06-28 13:56:25 Numpy 提供了一个强大的N维数组对象ndarray,提供了线性代数,傅里叶变换和随机数生成等的基本功能,可以说Numpy是Scipy,Pandas等科学计算 ...

  6. Python——Pandas库入门

    一.Pandas库介绍 Pandas是Python第三方库,提供高性能易用数据类型和分析工具 import pandas as pd Pandas基于NumPy实现,常与NumPy和Matplotli ...

  7. Python Requests库入门——应用实例-百度、360搜索关键词提交

    百度的关键词接口: http://www.baidu.com/s?wd=keyword 360的关键词接口: http://www.so.com/s?q=keyword keyword就是需要查找的关 ...

  8. Python——Matplotlib库入门

    1.Matplotlib库简介 优秀的可视化第三方库 Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当 ...

  9. python requests库入门[转]

    首先,确认一下: Requests 已安装 Requests是 最新的 让我们从一些简单的示例开始吧. 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: > ...

随机推荐

  1. 如何理解js中的this和实际应用中需要避开哪些坑

    this是什么 this就是函数内部的关键字 看下面例子理解js中的this // 例子1 function fnOne () { console.log(this) } 'use strict' f ...

  2. 前端每日实战:34# 视频演示如何用纯 CSS 创作在文本前后穿梭的边框

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qYepNv 可交互视频教程 此视频 ...

  3. js实现box(2)(3)这种调用方式的方法

    box(2)(3)函数的调用方法有两种: 第一种: var box = function(num1){ return function(num2){ return num1+num2; }; }; a ...

  4. idea 2018.1激活方法

    之前用的idea都是2017版本的,现在已经四月份了,对于2018年1月份的版本应该可以放心的用了. 在这里,仅提供2018版本的激活码. 至于安装步骤,这里省略一千个字...... 下面是具体的激活 ...

  5. form里面文件上传并预览

    其实form里面是不能嵌套form的,如果form里面有图片上传和其他input框,我们希望上传图片并预览图片,然后将其他input框填写完毕,再提交整个表单的话,有两种方式! 方式一:点击上传按钮的 ...

  6. VOIP RTP RTSP 实现 Baresip 源码分析

    RTP 使用 udp 进行数据传输,udp 是不能保证,数据包一定可以到达的,也不提供时序.同时还有 MTU 限制. RTCP 用来配合 RTP 提供,传输报告,会话建立和退出. 一大批参考规范 * ...

  7. MySQL中常用转换函数介绍

    Cast函数:CONVERT函数. 用法:CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name). ...

  8. 01 UIPath抓取网页数据并导出Excel(非Table表单)

    上次转载了一篇<UIPath抓取网页数据并导出Excel>的文章,因为那个导出的是table标签中的数据,所以相对比较简单.现实的网页中,有许多不是通过table标签展示的,那又该如何处理 ...

  9. 关于SDL的一些坑:找不到WinMain,不显示控制台,添加链接库等

    目录: 用CMake构建SDL时报错 Gcc添加链接库 Gcc找不到入口(WinMain) 让SDL启动时不带控制台窗口 用CMake构建SDL时报错 root@ubuntu:~/SDL# cmake ...

  10. 6.前台项目vue环境、创建、目录重构、CSS、JS配置

    目录 前台 vue环境 创建项目 重构项目目录 文件修订:目录中非配置文件的多余文件可以移除 App.vue router/index.js Home.vue 全局配置:全局样式.配置文件 globa ...