numpy入门详细教程(一)
本讲主要介绍对numpy库和numpy库的N维数组对象:ndarray的基本了解。更多内容请看numpy入门详细教程(二)
numpy:
NumPy是一个开源的Python科学计算基础库,包含:
• 一个强大的N维数组对象 ndarray
• 广播功能函数
• 整合C/C++/Fortran代码的工具
• 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础
numpy的引用:
import numpy as np
np是numpy模块的别名,尽管别名可以省略或更改,建议使用上述约定俗成的别名
numpy的N维数组对象:ndarray
Python已有列表类型,为什么需要一个数组对象(类型)?
例:计算 A 2 +B 3 ,其中,A和B是一维数组。
方法1:
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]**2)return cprint(pysum())
方法2:
import numpy as npdef npsum():a = np.array([0, 1, 2, 3, 4,])b = np.array([9, 8, 7, 6, 5,])c = a**2 + b**2return cprint(npsum())
对比方法1和方法2,我们可以得到:
• 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
• 设置专门的数组对象,经过优化,可以提升这类应用的运算速度
观察:科学计算中,一个维度所有数据的类型往往相同
•数组对象采用相同的数据类型,有助于节省运算和存储空间
ndarray是一个多维数组对象,由两部分构成:
• 实际的数据
• 描述这些数据的元数据(数据维度、数据类型等)
ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始
ndarry实例:
ndarry在程序中的别名是:array,np.array()表示生成一个ndarray数组
如上:np.array()输出成[ ]形式,元素由空格分割
ndarray对象的属性:
轴(axis):保存数据的维度;秩(rank):轴的数量
实例:
ndarray数组的元素类型:
ndarray为什么要支持这么多种元素类型?
对比:Python语法仅支持整数、浮点数和复数3种类型
• 科学计算涉及数据较多,对存储和性能都有较高要求
• 对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能
• 对元素类型精细定义,有助于程序员对程序规模有合理评估
非同质的ndarray对象:
非同质的情况下,数组的各种属性已发生变化,与同质情况不同,不必去深究它。
非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用
更多内容请看numpy入门详细教程(二)
注:作者在慕课上跟随嵩天老师学习python数据分析课程,收获良多。以上是作者的学习笔记。
numpy入门详细教程(一)相关推荐
- python数据科学系列:numpy入门详细教程
导读 python数据科学基础库主要是三剑客:numpy,pandas以及matplotlib,每个库都集成了大量的方法接口,配合使用功能强大.平时虽然一直在用,也看过很多教程,但纸上得来终觉浅,还是 ...
- Numpy入门详细教程
大纲: 文章目录 大纲: 1.numpy基本使用 1.1读取数据 1.2创建数组 1.2.1使用array函数创建数组 1.2.2使用arange函数生产数组 1.2.3使用zeros函数生产全0数组 ...
- Pandas入门详细教程
作者:luanhz 来源:小数志 导读 本文主要是对pandas进行入门详细介绍,通过本文你将系统性了解pandas为何会有数据分析界"瑞士军刀"的盛誉. 行文二级目录 01 关于 ...
- python数据科学系列:pandas入门详细教程
导读 前2篇分别系统性介绍了numpy和matplotlib的入门基本知识,今天本文自然是要对pandas进行入门详细介绍,通过本文你将系统性了解pandas为何会有数据分析界"瑞士军刀&q ...
- spring入门详细教程(五)
前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...
- Spring入门详细教程(四)
前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...
- Spring入门详细教程(三)
前言 本篇紧接着spring入门详细教程(二),建议阅读本篇前,先阅读第一篇和第二篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/101 ...
- Spring入门详细教程(二)
前言 本篇紧接着spring入门详细教程(一),建议阅读本篇前,先阅读第一篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/1016553 ...
- ThinkJS框架入门详细教程(二)新手入门项目
一.准备工作 参考前一篇:ThinkJS框架入门详细教程(一)开发环境 安装thinkJS命令 npm install -g think-cli 监测是否安装成功 thinkjs -v 二.创建项目 ...
最新文章
- 做动态图表没有数据?用Python就能获取
- opencv 通道分离合并
- 手机网页 右边的空白区
- Algorithm:机械优化设计的数学模型简介、常用优化方法、优化计算工具简介之详细攻略
- mysql有3个共同好友_共同好友mysql
- PHP怎么抛出错误,php – 从“正确”来源抛出错误
- 【已解决】离散数学项目工序表转换为网络图(完整步骤版)
- 1818 绝对差值和
- Python之xlsx文件转csv文件
- C++名称查找与ADL
- WIN10家庭版虚拟机启动蓝屏问题
- 3D MAX 2014学习地址
- skb_buff结构体解析
- fastq文件转化成bam文件
- Linux 系统 /var/log/journal/ 垃圾日志清理
- OGG12C安装与配置
- android 添加子view,如何在Android中向ImageView添加子视图
- [收藏]基于Spark Graphframes的社交关系图谱项目实战
- Elasticsearch集群原理、安装和基本使用
- android国外网站