Python——NumPy库入门
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库入门的更多相关文章
- Python数据分析与展示(1)-数据分析之表示(1)-NumPy库入门
Numpy库入门 从一个数据到一组数据 维度:一组数据的组织形式 一维数据:由对等关系的有序或无序数据构成,采用线性方式组织. 可用类型:对应列表.数组和集合 不同点: 列表:数据类型可以不同 数组: ...
- 数据分析与展示——NumPy库入门
这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组 ...
- python numpy库np.percentile用法说明
在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可…… a = range(1,101) #求取a数列第90%分位的数值 np.per ...
- 数据分析之Numpy库入门
1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列 ...
- 机器学习 Numpy库入门
2017-06-28 13:56:25 Numpy 提供了一个强大的N维数组对象ndarray,提供了线性代数,傅里叶变换和随机数生成等的基本功能,可以说Numpy是Scipy,Pandas等科学计算 ...
- Python——Pandas库入门
一.Pandas库介绍 Pandas是Python第三方库,提供高性能易用数据类型和分析工具 import pandas as pd Pandas基于NumPy实现,常与NumPy和Matplotli ...
- Python Requests库入门——应用实例-百度、360搜索关键词提交
百度的关键词接口: http://www.baidu.com/s?wd=keyword 360的关键词接口: http://www.so.com/s?q=keyword keyword就是需要查找的关 ...
- Python——Matplotlib库入门
1.Matplotlib库简介 优秀的可视化第三方库 Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当 ...
- python requests库入门[转]
首先,确认一下: Requests 已安装 Requests是 最新的 让我们从一些简单的示例开始吧. 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: > ...
随机推荐
- CSS的常用单位 %和 vw vh 和 box-sizing:border-box; 和flex简介
一.% 理解: %号是CSS中的常用单位,它是相对于父容器而言的.如:一个父容器的宽是100px,给它的子元素一个10%,那么子元素的宽就是100px的10% 10px. 效果图: (利用%设置了li ...
- [LeetCode] 面试题 10.01.合并排序的数组
题目: 这道题有多种实现的思路,这里使用双指针结合数组有序的特点进行解决 思路: m代表A初始时有效元素的个数,n代表B中元素的个数,那么n+m才是A的总长度 从A的最后一个位置开始,设为cur,分别 ...
- TensorFlow Serving实现多模型部署以及不同版本模型的调用
前提:要实现多模型部署,首先要了解并且熟练实现单模型部署,可以借助官网文档,使用Docker实现部署. 1. 首先准备两个你需要部署的模型,统一的放在multiModel/文件夹下(文件夹名字可以任意 ...
- Ubuntu部署Asp.net core网站无法访问
前几天应工作需要,在阿里云上部署一个测试站点.本以为分分钟的事情,没想到打脸了. 当时直接新建一个webapi项目,publish后直接上传到阿里云,随后设置nginx转发网站端口5000. 接着打开 ...
- Oracle学习笔记--Oracle启动过程归纳整理
Oracle 启动过程分为nomount状态mount状态open状态 每个状态下Oracle都会进行不同的操作:1.nomount状态 在$ORACLE_HOME/dbs目录下寻找参数文件 参数文件 ...
- 你会无聊到把Administrator用户禁用,并且自己创建的用户搞到消失掉还有Administrator用户被禁吗。。。。。
2020年3月17日20:07:00 如文章标题哈,就是这么任性,无奈 事件起因:因为要部署项目,并且需要将线上的Oracle数据库导入到本地Oracle数据库中突然发现使用 sqlplus 连接数据 ...
- webStorm ctrl+L 跳转到指定行line eclipes快捷键
webStorm ctrl+L 跳转到指定行line eclipes快捷键
- 信号与系统实验序章0——MATLAB基础命令入门
本次开启新的系列,关于用Matlab实现常见信号和函数的生成和变换. 同时如果没有MATLAB基础,那么可以跟着本文一步一步学习Matlab的相关操作,本文旨在记录在信号与系统课程中MATLAB的学习 ...
- 解决2020-3-27 github无法访问
早上的github无法访问了 查找资料后,发现可以修改 hosts 文件 右键 属性 将只读去掉 进行修改 其中的ip去如下地址拿 试一下,大功告成
- Linux下反弹shell笔记
0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点. nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流 可运行在TCP或者UDP模式,添加参数 —u 则 ...