学习笔记25—python基本运算法则
- 1、矩阵的点乘: a*b, 矩阵乘法:dot(a*b),矩阵的次方:a**num (num = 2,表示2次)
2、数组的并集,交集:
>>> a = [1,2,3]
>>> b = [2,4,5]
>>> list(set(a).intersection(set(b)))
[2]
>>> list(set(a).union(set(b)))
[1, 2, 3, 4, 5]
>>> list(set(a).difference(set(b)))
[1, 3]
>>> list(set(b).difference(set(a)))
[4, 5]
原文:https://blog.csdn.net/longzhiwen888/article/details/46562303
- 3、集合的交集,合集和补集:
4、数组的增、删、改、插:
>>> a=[1,2,3]
>>> a.remove(2)
>>> a
[1, 3]
>>> a=[1,2,3]
>>> del a[1]
>>> a
[1, 3]
>>> a= [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]
5、将两个矩阵合并:
1) 生成矩阵:
import
numpy as np
###矩阵a
a
=
np.floor(
10
*
np.random.rand(
2
,
2
))
###a
a
array([[
8.
,
5.
],
[
1.
,
6.
]])
###矩阵b
b
=
np.floor(
10
*
np.random.rand(
2
,
2
))
b
array([[
1.
,
9.
],
[
8.
,
5.
]])
###hstack()在行上合并
np.hstack((a,b)) (或者: np.c_[a,b])
array([[
8.
,
5.
,
1.
,
9.
],
[
1.
,
6.
,
8.
,
5.
]])
####vstack()在列上合并
np.vstack((a,b))
array([[
8.
,
5.
],
[
1.
,
6.
],
[
1.
,
9.
],
[
8.
,
5.
]])
- 数组初始化方式:
- 一个numpy数组是一个值的矩阵,所有类型相同,并且索引是非负整数。维数是阵列的等级;
- 数组的形状是一个整数的元组,它给出了每个维度上数组的大小。
- 我们可以从嵌套的Python列表初始化numpy数组,并使用方括号来访问元素:
- a = np.array([1, 2, 3])
- 可以通过a.shape来得到矩阵的形状
- Numpy还提供了许多功能来初始化数组:
- 初始化一个全零矩阵,参数为矩阵形状:
- a = np.zeros((2,2))
- 初始化一个全一矩阵,参数为矩阵形状:
- b = np.ones((1,2))
- 初始化一个常数矩阵,参数第一个是形状,第二个是要被初始化的常数:
- c = np.full((2,2), 7)
- 初始化一个单位矩阵,参数是矩阵的维数:
- d = np.eye(2)
- 初始化一个随机数矩阵,参数是矩阵形状:
- e = np.random.random((2,2))
- 初始化一个与之前矩阵形状相同的矩阵,参数是被参考形状的矩阵,值为随机数:
- f = np.empty_like(a)
- 初始化一个矩阵,内容将向量a在一行内复制y次,再将该行赋值x次:
- g = np.tile(a, (x, y))
- 数组索引:
- 1.切片:
- 与Python列表类似,numpy数组可以被切片。由于数组可能是多维的,因此必须为数组
- 的每个维度指定一个切片。索引a后得到的结果赋值给其他的存储变量b,b的存储地址
- 仍指向a的存储地址。
- 也可以将整数索引与切片索引混合在一起。但是,这样做会产生比原始数组更低级别的数
- 组。这与MATLAB处理数组切片的方式完全不同。
- 2.整数数组索引:
- 当使用切片将数组索引到numpy数组时,得到的数组将始终是原始数组的子数组。相比之
- 下,整型数组索引允许您使用另一个数组中的数据构造任意数组。
- a[[0, 1, 2], [0, 1, 0]]
- 的结果等同于
- [a[0, 0], a[1, 1], a[2, 0]]
- 整数数组索引的一个有用技巧是从矩阵的每一行中选择或变异一个元素:
- a = np.array([0, 2, 0, 1])
- b[np.arange(4), b] += 10 # 数组b中0到3行的第0,2,0,1元素
- # 的值分别加10
- 3.布尔数组索引:
- 布尔数组索引可以挑出数组的任意元素。这种类型的索引用于索引满足某些条件的数组元
- 素:
- bool_idx = (a > 2) # 返回矩阵中的元素说明矩阵a中对应
- # 位置的值是否大于二,如果满足条件则为True,
- # 否则为False
- a[bool_idx] # 返回数组的内容为bool_idx中值为True的位置上数组a中
- # 对应的值
- a[a > 2] # 效果等同于以上两步的合并
- 数据类型:
- 每个numpy数组都是相同类型的元素的矩阵。 Numpy提供了一组可用于构造数组的数字数据
- 类型。 Numpy在创建数组时尝试猜测数据类型,但构造数组的函数通常还包含可选参数以明
- 确指定数据类型:
- x = np.array([1, 2], dtype=np.int64) # 强制一个特定的数据类型
- 数组运算:
- 矩阵加法:x + y
- np.add(x, y)
- 矩阵减法:x - y
- np.subtract(x, y)
- 矩阵叉乘:x * y
- np.multiply(x, y)
- 矩阵除法:x / y
- np.divide(x, y)
- 矩阵各元素开方:np.sqrt(x)
- 矩阵点乘:
- x = np.array([[1,2],[3,4]])
- y = np.array([[5,6],[7,8]])
- v = np.array([9,10])
- w = np.array([11, 12])
- 向量点乘:v.dot(w)
- np.dot(v, w)
- 矩阵点乘列向量:x.dot(v)
- np.dot(x, v)
- 矩阵点乘矩阵:x.dot(y)
- np.dot(x, y)
- 求矩阵内元素的和:
- 所有元素和:np.sum(x)
- 所有行每一列的和:np.sum(x, axis=0)
- 所有列每一行的和:np.sum(x, axis=1)
- 矩阵转置矩阵:x.T(向量的转置还是向量)
- 广播:
- 广播允许将向量加到矩阵的每一行并且不对向量执行复制操作:
- import numpy as np
- # We will add the vector v to each row of the matrix x,
- # storing the result in the matrix y
- x = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]])
- v = np.array([1, 0, 1])
- y = x + v # Add v to each row of x using broadcasting
- print(y) # Prints "[[ 2 2 4]
- # [ 5 5 7]
- # [ 8 8 10]
- # [11 11 13]]"
- 7、矩阵按行,列求和
学习笔记25—python基本运算法则的更多相关文章
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- Noah的学习笔记之Python篇:命令行解析
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- Noah的学习笔记之Python篇:函数“可变长参数”
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- Noah的学习笔记之Python篇:装饰器
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- python3.4学习笔记(九) Python GUI桌面应用开发工具选择
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
- 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接
[学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...
- 学习笔记之Python 3
学习笔记之Python 3 教程 https://www.cnblogs.com/pegasus923/p/7624416.html 学习笔记之X分钟速成Python3 https://www.cnb ...
- python 学习笔记 9 -- Python强大的自省简析
1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...
随机推荐
- python类的__slots__属性、__del__属性、上下文(__enter__和__exit__)、
常规情况下,类的属性字典是共享的,而实例的字典是独立的.如果一个类的属性较少,但是拥有很多的实例,这些实例的属性字典会占用较多的内存空间.对这样的类来说,为了节省内存空间,可以使用__slots__类 ...
- fjwc2019 D1T2 原样输出(后缀自动机+dp)
#179. 「2019冬令营提高组」原样输出 暴力对每个串建后缀自动机,然后暴力枚举每个自动机的子串.可以拿到部分分. 然鹅我们可以把每个后缀自动机连起来. 我们知道,后缀自动机是用最少的点(空间)表 ...
- Python3+PyQt5+PyCharm 桌面GUI开发环境搭建
Python3+PyQt5+PyCharm 桌面GUI开发环境搭建 一.安装python PyQt5所支持的python版本是不低于3.5版本 python3.5以上的版本安装:https://www ...
- 阶段性总结(2017 June 10 - 2017 July 10)
综述 我在全面剖析了自身的特质以后,针对于工程技术领域的经验丰富优势.科学研究领域的理论薄弱劣势.我制定了全面夯实科学研究理论基础的学习计划.全面提高效率抓大放小的精力分配原则. 执行成果 线性代数( ...
- Bootstrap3基础 img-responsive 响应式图片
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- Python3 tkinter基础 Canvas create_rectangle 画虚边的矩形 create_oval 画椭圆形 圆形
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Hyper
https://github.com/zeit/hyper https://gist.github.com/coco-napky/404220405435b3d0373e37ec43e54a23 Ho ...
- asp.net core mvc 中在C# 代码中写 js 或html 文本
https://blog.csdn.net/orichisonic/article/details/62046621 使用<text>这个伪元素来强制Razor从编译模式返回到内容模式: ...
- NLP--- How to install the tool NLTK in Ubuntu ?
NLP--- How to install the tool NLTK in Ubuntu ? 1. open the website of NLTK and download it. https: ...
- Derek解读Bytom源码-P2P网络 upnp端口映射
作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...