Python人工智能常用库Numpy使用入门
第一章 jupyter notebook简单教程
命令模式按键esc开启
Enter : 转入编辑模式
Shift-Enter : 运行本单元,选中下个单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在其下插入新单元
Y : 单元转入代码状态
M :单元转入markdown状态
Z : 恢复删除的最后一个单元
第二章 numpy简单教程
2.1 数组
import numpy as np
a = np.array([1, 2, 3])
print(a)
#out
[1 2 3]
a
#out
array([1, 2, 3])
type(a)
#out
numpy.ndarray
a.shape
#out
(3,)
# reshape(1, -1)中1代表设置数组为1行 , -1代表一个占位符 , 表示a数组列数
# reshape()中-1可以作为行的占位符也可以作为列的占位符
a = a.reshape(1, -1)
a.shape
#out
(1, 3)
a = np.array([1, 2, 3, 4, 5, 6])
a.shape
#out
(6,)
a = a.reshape(2,-1)
a.shape
#out
(2, 3)
a
#out
array([[1, 2, 3],
[4, 5, 6]])
a = a.reshape(-1, 2)
a.shape
#out
(3, 2)
a[2, 0]
#out
5
a[2, 0] = 55
a[2, 0]
#out
55
# zeros用于创建元素全部为0的矩阵数组
a = np.zeros((3, 3))
a
#out
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
# ones用于创建元素全部为1的矩阵数组
a = np.ones((3, 3))
a
#out
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
# zeros ones函数也完全可以用full函数实现
a = np.full((2, 3), 0)
a
#out
array([[0, 0, 0],
[0, 0, 0]])
# eye函数用于创建单位矩阵
a = np.eye(3)
a
#out
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
# random.random用户创建数值为0-1之间的随机二维数组
a = np.random.random((2, 3))
a
#out
array([[0.54627035, 0.49586489, 0.6976645 ],
[0.76596824, 0.95951819, 0.7515421 ]])
2.2 数组索引操作
# indexing : 数组索引
a = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# -2代表数组的倒数第二行 , 1:3代表从第一列开始往后两个元素
a[-2:, 1:3]
#out
array([[ 6, 7],
[10, 11]])
# 取倒数第二行 , 第三列元素
a[-2, 3]
#out
8
a
#out
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
a.shape
#out
(3, 4)
# 将数组a倒数第二行开始到最后一行 , 从第一列往后两列元素赋值给b数组
b = a[-2:, 1:3]
a
#out
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
b
#out
array([[ 6, 7],
[10, 11]])
b.shape
#out
(2, 2)
# 指定为索引为的2行
b = a[2, 1:3]
b
#out
array([10, 11])
b.shape
#out
(2,)
b = a[1, 2]
b
#out
7
b.shape
#out
()
b = a[2:3, 1:3]
b
#out
array([[10, 11]])
b.shape
#out
(1, 2)
# 将数组的3行的1列 + 10
a[np.arange(3), 1] += 10
a
#out
array([[ 1, 12, 3, 4],
[ 5, 16, 7, 8],
[ 9, 20, 11, 12]])
a[np.arange(2), 3] += 100
a
#out
array([[ 1, 12, 3, 104],
[ 5, 16, 7, 108],
[ 9, 20, 11, 12]])
# 产生一个0,1,2的数组 , 不包含3
np.arange(3)
#out
array([0, 1, 2])
# 产生一个从3-7的数组 , 不包含7
np.arange(3,7)
#out
array([3, 4, 5, 6])
a[np.arange(3), [1,1,1]] += 10
a
#out
array([[ 1, 22, 3, 104],
[ 5, 26, 7, 108],
[ 9, 30, 11, 12]])
a[[0,1,2], [1,1,1]] += 10
a
#out
array([[ 1, 32, 3, 104],
[ 5, 36, 7, 108],
[ 9, 40, 11, 12]])
# 判断数组a中大于10的值
result_index = a>10
result_index
#out
array([[False, True, False, True],
[False, True, False, True],
[False, True, True, True]])
a[result_index]
#out
array([ 32, 104, 36, 108, 40, 11, 12])
a[a>10]
#out
array([ 32, 104, 36, 108, 40, 11, 12])
2.3 元素数组类型
a = np.array([1,2,3])
a.dtype
#out
dtype('int64')
a = np.array([1.1, 2.2])
a.dtype
#out
dtype('float64')
a = np.array([1.1, 1, 'a'])
a
#out
array(['1.1', '1', 'a'], dtype='
# 将float型数组转化成int型
a = np.array([1.1, 2.2], dtype=np.int64)
a
#out
array([1, 2])
# 将a数组赋值给b数组 , 同时设置元素类型为int
b = np.array(a, dtype=np.int64)
b
#out
array([1, 2])
2.3 数组运算与常用函数
numpy中的数学运算
a = np.array([[1,2],
[3,4]])
b = np.array([[5,6],
[6,5]])
# 加法
a+b
#out
array([[6, 8],
[9, 9]])
np.add(a,b)
#out
array([[6, 8],
[9, 9]])
# 减法
a-b
#out
array([[-4, -4],
[-3, -1]])
np.subtract(a,b)
#out
array([[-4, -4],
[-3, -1]])
# 乘法
a*b
#out
array([[ 5, 12],
[18, 20]])
np.multiply(a,b)
#out
array([[ 5, 12],
[18, 20]])
# 除法
a/b
#out
array([[0.2 , 0.33333333],
[0.5 , 0.8 ]])
np.divide(a,b)
#out
array([[0.2 , 0.33333333],
[0.5 , 0.8 ]])
# 开方
np.sqrt(a)
#out
array([[1. , 1.41421356],
[1.73205081, 2. ]])
a
#out
array([[1, 2],
[3, 4]])
b = np.array([[1,2,3],
[4,5,6]])
# dot : 是将a数组与b数组矩阵相乘的结果
a.dot(b)
#out
array([[ 9, 12, 15],
[19, 26, 33]])
np.dot(a,b)
#out
array([[ 9, 12, 15],
[19, 26, 33]])
numpy中的常用函数
# sum : 求和函数
# 计算数组中全部元素的和
a = np.array([[1,2],
[3,4]])
np.sum(a)
#out
10
# 将数组中的每一列进行求和操作
np.sum(a, axis=0)
#out
array([4, 6])
# 将数组中的每一行进行求和操作
np.sum(a, axis=1)
#out
array([3, 7])
# mean : 求平均值函数
# 计算数组的平均值
np.mean(a)
#out
2.5
# 计算数组每一列的平均值
np.mean(a, axis=0)
#out
array([2., 3.])
# 计算数组每一行的平均值
np.mean(a, axis=1)
#out
array([1.5, 3.5])
# uniform : 用户生成一个指定范围内的随机数值
np.random.uniform(3,4)
#out
3.247709331922638
# tile : 用于将一个数组作为一个元素重复指定的次数
a无锡妇科医院哪家好 http://www.xasgfk.cn/
#out
array([[1, 2],
[3, 4]])
# 将数组在行上重复1次, 在列上重复2次
np.tile(a, (1,2))
#out
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
# 将数组在行上重复1次, 在列上重复3次
np.tile(a, (1,3))
#out
array([[1, 2, 1, 2, 1, 2],
[3, 4, 3, 4, 3, 4]])
# argsort : 将数组中的元素进行排序 , 默认从小到大
a = np.array([[1,12,3,104],
[5,10,1,3]])
# 按照数组下标将元素排好
np.argsort(a)
#out
array([[0, 2, 1, 3],
[2, 3, 0, 1]])
# 将每一列进行排序
a.argsort(axis=0)
#out
array([[0, 1, 1, 1],
[1, 0, 0, 0]])
# T : 矩阵转置
a
#out
array([[ 1, 12, 3, 104],
[ 5, 10, 1, 3]])
a.T
#out
array([[ 1, 5],
[ 12, 10],
[ 3, 1],
[104, 3]])
# 使用transpose函数将数组转置
np.transpose(a)
#out
array([[ 1, 5],
[ 12, 10],
[ 3, 1],
[104, 3]])
2.4 广播
广播
可以将不同维度的数组进行相加 , numpy会将不同维度的数组转化成相同维度的数组 , 广播会在缺失维度和一维的数组上进行操作
a = np.array([[1, 2, 3],
[5, 6, 7],
[9, 10, 11]])
b = np.array([1,2,3])
# 将b数组加到a数组的每一行
for i in range(3):
a[i, :] += b
a
#out
array([[ 2, 4, 6],
[ 6, 8, 10],
[10, 12, 14]])
# 将b数组行上重复3次 , 列上重复1次 , 与a相加
a + np.tile(b, (3,1))
#out
array([[ 3, 6, 9],
[ 7, 10, 13],
[11, 14, 17]])
Python人工智能常用库Numpy使用入门的更多相关文章
- Python科学计算库Numpy
Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...
- 数据分析常用库(numpy,pandas,matplotlib,scipy)
概述 numpy numpy(numeric python)是 python 的一个开源数值计算库,主要用于数组和矩阵计算.底层是 C 语言,运行效率远高于纯 python 代码.numpy主要包含2 ...
- Python的常用库
读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都 ...
- 爬虫-Python爬虫常用库
一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...
- Python扫描器-常用库-Request
1.常用库-Request 1.1. 介绍 #安装:pip3 install requests #各种请求方式:常用的就是requests.get()和requests.post() >> ...
- python常用库 - NumPy 和 sklearn入门
Numpy 和 scikit-learn 都是python常用的第三方库.numpy库可以用来存储和处理大型矩阵,并且在一定程度上弥补了python在运算效率上的不足,正是因为numpy的存在使得py ...
- [Python学习] python 科学计算库NumPy—矩阵运算
NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而 ...
- Python科学计算库-Numpy
NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...
- Python自动化测试常用库
基本库: sys 程序和Python解析器的交互 os 启动新进程:操作文件和目录 re 正则表达式,字符串匹配 string 基本字符串操作 inspect 提供自省和反射功能 importlib ...
随机推荐
- Sublime Text2中的快捷方式及html各种标签(待完善)
快捷方式 1.xhtml+tab 2.自动补全标签 Alt + . 补全标签 标签 1.<p>段落标签 ,前后换行 <h1.2.3.4.5>标题标签 h1最大,一级标题 2. ...
- 在eclipse中打jar包
在Eclipse中打jar包 步骤: 1. 在项目名称中点击右键,点Export... 2.选择java-->Java File, next 3. 选择你打算打包的文件.可以选择某几个文件,也可 ...
- Scrapy笔记08- 文件与图片
Scrapy笔记08- 文件与图片 Scrapy为我们提供了可重用的item pipelines为某个特定的Item去下载文件. 通常来说你会选择使用Files Pipeline或Images Pip ...
- Visual Studio调试XSLT
Visual Studio是一个很大的工具.很容易遗漏一些有用的特性.希望XSLT调试器不会错过.在下面,您可以看到调试器正在运行,因为xslt转换正在应用于某些XML.(请原谅我在示例中使用的毫无意 ...
- Windows空间清理2
最近听说有同事因为电脑C盘不足,让别人重装电脑解决了,感觉有点意料之外又有点情理之中. 一方面居然有某些做技术的同事不知道要如何高效的清理自己的磁盘空间,要花一天时间重装系统.然后装软件.再配置各种开 ...
- k均值聚类算法原理和(TensorFlow)实现
顾名思义,k均值聚类是一种对数据进行聚类的技术,即将数据分割成指定数量的几个类,揭示数据的内在性质及规律. 我们知道,在机器学习中,有三种不同的学习模式:监督学习.无监督学习和强化学习: 监督学习,也 ...
- JConsole远程配置
JConsole是JDK自带的内存监控工具 1.linux配置tomcat-9.x 修改setenv.sh文件(默认没有的,需自己创建),增加配置: #!/bin/sh JAVA_HOME=/usr/ ...
- 停止IIS服务
1 第一步 停止 World Wide Web Publishing Service 这个是W3C服务 2 第二部 停止 IIS Admin Service 这个IIS元数据管理服务
- SVN版本管理系统使用教程
1.下载SVN安装包 https://tortoisesvn.net/downloads.html 2.下载SVN汉化包 网页下翻到下载处 3.下载服务端 https://www.visualsvn. ...
- PatchMatch Stereo - Stereo Matching with Slanted Support Windows
Tips MVS: Multi-View Stereo Abstract 思路:一般的局部立体方法是一个具有整形数值视察(disparity)的支持镜头进行匹配,其中有一个隐藏的假设:再支持区域的像素 ...