当前位置:
首页 > Python基础教程 >
-
初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
1. numpy科学计算基础库
1.1 什么是numpy
NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy的前身Numeric最早是由Jim Hugunin与其它协作者共同开发,2005 年,Travis Oliphant在Numeric中结合了另一个同性质的程序库Numarray的特色,并加入了其它扩展而开发了NumPy。NumPy为开放源代码并且由许多协作者共同维护开发。
NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C++/Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
1.2 创建数组(矩阵)
- # coding=utf-8
- import numpy as np
- #使用numpy生成数组,得到ndarray的类型
- t1 = np.array([1,2,3,])
- print(t1)
- print(type(t1))
- t2 = np.array(range(10))
- print(t2)
- print(type(t2))
- t3 = np.arange(4,10,2)
- print(t3)
- print(type(t3))
- print(t3.dtype)
运行结果
1.3 数据类型
名称 | 描述 |
---|---|
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型(类似于 C 语言中的 long,int32 或 int64) |
intc | 与 C 的 int 类型一样,一般是 int32 或 int 64 |
intp | 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64) |
int8 | 字节(-128 to 127) |
int16 | 整数(-32768 to 32767) |
int32 | 整数(-2147483648 to 2147483647) |
int64 | 整数(-9223372036854775808 to 9223372036854775807) |
uint8 | 无符号整数(0 to 255) |
uint16 | 无符号整数(0 to 65535) |
uint32 | 无符号整数(0 to 4294967295) |
uint64 | 无符号整数(0 to 18446744073709551615) |
float_ | float64 类型的简写 |
float16 | 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 | 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 | 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex_ | complex128 类型的简写,即 128 位复数 |
complex64 | 复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 | 复数,表示双 64 位浮点数(实数部分和虚数部分) |
- # coding=utf-8
- import numpy as np
- import random
- # int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替
- t1 = np.array(range(1,4),dtype="i1")
- print(t1)
- print(t1.dtype)
- ##numpy中的bool类型
- t2 = np.array([1,1,0,1,0,0],dtype=bool)
- print(t2)
- print(t2.dtype)
- #调整数据类型
- t3 = t2.astype("int8")
- print(t3)
- print(t3.dtype)
- #numpy中的小数
- t4 = np.array([random.random() for i in range(10)])
- print(t4)
- print(t4.dtype)
- t5 = np.round(t4,2)
- print(t5)
运行结果:
1.4 数组的形状
- # coding=utf-8
- import numpy as np
- a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
- print(a)
- #查看数组形状
- print(a.shape)
- #修改数组形状
- print(a.reshape(3,4))
- #原数组形状不变
- print(a.shape)
- b = a.reshape(3,4)
- print(b.shape)
- print(b)
- #把数组转化为1维度数据
- print(b.reshape(1,12))
- print(b.flatten())
运行结果:
1.5 数组和数的计算
- # coding=utf-8
- import numpy as np
- a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
- print(a)
- #加法减法
- print(a+5)
- print(a-5
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式