python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量
python numpy常用操作
Numpy基本操作
# 导入numpy
import numpy as np
# 生成numpy数组
x = np.array([1.0, 2.0, 3.0])
print(x) # [1. 2. 3.]
print(type(x)) # <class 'numpy.ndarray'>
# Numpy的算术运算
x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])
print(x+y) #[3. 6. 9.]
print(x-y) #[-1. -2. -3.]
print(x*y) # [ 2. 8. 18.]
print(x/y) #[0.5 0.5 0.5]
# Numpy的多维数组
A = np.array([[1, 2], [3, 4]])
print(A)
#[[1 2]
# [3 4]]
# 矩阵A的形状可以通过shape查看
print(A.shape)#(2, 2)
# 矩阵A的元素类型可以通过dtype查看
print(A.dtype)#int32
# 矩阵的算数运算:
B = np.array([[3, 0], [0, 6]])
print(A+B)
print(A*B)
print(A*10)
'''
[[ 4 2][ 3 10]][[ 3 0][ 0 24]][[10 20][30 40]]
'''
# 广播:形状不同的数组之间也可以进行运算
A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])
print(A*B)
'''
[[10 40][30 80]]
'''
# 访问元素
x = np.array([[51, 55], [14, 19], [0, 4]])
print(x)
'''
[[51 55][14 19][ 0 4]]
'''# 访问第0行
print(x[0])#[51 55]
# 访问(0,1)的元素
print(x[0][1])#55
# 使用数组访问各个元素
# 将x转换为一维数组
x = x.flatten()
print(x)#[51 55 14 19 0 4]
# 获取索引为0,2,4的元素
print(x[np.array([0, 2, 4])])#[51 14 0]# 取出大于15的元素
print(x[x > 15])#[51 55 19]
Numpy 多维数组、矩阵相乘、矩阵乘以向量
第一个例子:
import numpy as npif __name__ == '__main__':A=np.array([[1,2],[3,4]])B=np.array([[5,6],[7,8]])print(B)print(np.ndim(B)) # 表示B是二维数组,也就是说有两列print(B.shape) # 输出B的形状,几行几列C=np.dot(A,B) # 矩阵相乘,需要满足矩阵乘法原则print(C)
输出:
[[5 6][7 8]]
2
(2, 2)
[[19 22][43 50]]
第二个例子:
import numpy as npif __name__ == '__main__':A=np.array([1,2]) # 2*1B=np.array([[1,3,5],[2,4,6]]) #2*3print(A)print(np.ndim(A))print(A.shape)print(B)print(np.ndim(B))print(B.shape)C=np.dot(A,B) #1*3print(C)print(np.ndim(C))print(C.shape)
结果:
[1 2]
1
(2,)
[[1 3 5][2 4 6]]
2
(2, 3)
[ 5 11 17]
1
(3,)
第三个例子:
import numpy as npif __name__ == '__main__':A=np.array([[1,2],[3,4],[5,6]]) # 3*2B=np.array([[7],[8]]) #2*1print(A)print(np.ndim(A))print(A.shape)print(B)print(np.ndim(B))print(B.shape)C=np.dot(A,B) #3*1print(C)print(np.ndim(C))print(C.shape)
结果:
[[1 2][3 4][5 6]]
2
(3, 2)
[[7][8]]
2
(2, 1)
[[23][53][83]]
2
(3, 1)
第四个例子:
import numpy as npif __name__ == '__main__':A=np.array([[1,2],[3,4],[5,6]]) # 3*2B=np.array([7,8])# 2*1print(A)print(np.ndim(A))print(A.shape)print(B)print(np.ndim(B))print(B.shape)C=np.dot(A,B) print(C)print(np.ndim(C))print(C.shape)
结果
[[1 2][3 4][5 6]]
2
(3, 2)
[7 8]
1
(2,)
[23 53 83]
1
(3,)
根据这里面2、3、4例子,可以总结出一个简便的理解思路。
一个矩阵乘一个向量,不用管那个向量究竟是行向量还是列向量。也不要管输出的向量是行向量还是列向量。因为我们的目的不是分辨它的形式是如何,而是要得到新向量里面的元素,所以就忽略它的存储形式。事实上,如果你非要弄清楚它的存储形式,那么你将被numpy的语法绕晕,把时间浪费到不重要的地方。
如果矩阵A是三行两列,一维向量B(也就是数组)里面有x个数,
x=矩阵的行的话,那么A乘以B就调用np.dot(B,A)
X=矩阵的列的话,那么A乘以B就调用np.dot(A,B)
用图来理解:
python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量相关推荐
- Python之Numpy常用操作
Numpy常用操作 文章目录 Numpy常用操作 1.数组初始化 2.数组基本运算 3.多维数组组合 4.数组中查找最大/小索引 5.查找符合条件元素索引 6.更改数组维度 1.数组初始化 # 生成特 ...
- python列表常用操作函数_Python入门——列表常用操作
Python列表常用操作 准备 控制台输入ipython parallels@parallels-vm:~$ ipythonPython 2.7.12 (default, Dec 4 2017, 14 ...
- python 定义一个无限制的二维数组方法
python 定义一个无限制的二维数组方法 自定义二维数组方式 n = int(input()) mapL = [list(map(int,input().split())) for _ in ran ...
- 1.8编程基础之多维数组 03 计算矩阵边缘元素之和 python
http://noi.openjudge.cn/ch0108/03/ """ 1.8编程基础之多维数组 03 计算矩阵边缘元素之和 http://noi.openjudg ...
- 7-67 使用二维数组实现Matrix(矩阵)。 (60 分)
使用二维数组实现Matrix(矩阵). 定义Matrix(矩阵)类,要求如下: a) 变量:matrix(int型二维数组),row(行数),column(列数): b) 方法:实现两个矩阵的乘法,所 ...
- 利用二维数组实现一个矩阵类:Matrix
利用二维数组实现一个矩阵类:Matrix.要求提供以下操作: (1)set(int row, int col, double value):将第row行第col列的元素赋值为value: (2)get ...
- 经典错误:二维数组与实际矩阵的差异所构成的易错点
经典错误:二维数组与实际矩阵的差异所构成的易错点 标签:C语言 二维数组 矩阵 by 小威威 1.矩阵与二维数组的差异 在线性代数的课程中,我们接触到了矩阵这一工具,不难发现它很类似于C语言中的二维数 ...
- c语言二维数组对角线输出字符,用C编程一个4*4的矩阵,用二维数组,求对角线元素的和。,c语言如何使二维数组 输出为矩阵的形式...
导航:网站首页 > 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数组 输出为矩阵的形式 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数 ...
- Python之数据分析(Numpy的使用、多维数组、数据类型)
文章目录 写在前面 一.数据分析与Numpy 二.多维数组 三.Numpy的数据类型 写在前面 代码中的np表示的是numpy,因为导入的时候是:import numpy as np 一.数据分析与N ...
最新文章
- Python的一些技巧
- 嵌入式系统开发工程师入行前十项准备
- 常用JavaScript函数 31 - 46(自我总结)
- ubuntu中安装mongodb注意事项
- spark TaskMemoryManager shuffle 内存管理
- 启用Mac系统读写NFTS磁盘
- Spring JPA 使用@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy 自动生成时间和修改者...
- AI为移动医疗APP加码,智能提醒你:该吃药了!
- K3 CLOUD API接口说明书V2.0
- 融合正弦余弦和变异选择的蝗虫优化算法
- Android应用商店——项目介绍
- 【综述】(MIT博士)林达华老师-概率模型与计算机视觉”
- 笔记本外接显示器之后扩展屏分辨率问题
- 安卓电子书格式_全网免费电子书资源,都在这个神器里了
- 连接数据库出现java.lang.NullPointerException
- python3字典的应用方法及技巧
- variable argument parameter的区别
- 如何搭建实验室智能化管理,易云维有整体解决方案
- 物流基础知识(十六)
- 征战奥斯卡,3部冲奥动画短片制作解析抢鲜看
热门文章
- WIN7开启WIFI
- VMware ubuntu20.04 server随win10自动启动与关闭
- Google强化学习框架SEED RL环境部署
- Linux安装后初始优化步骤(仅适用于CentOS、RedHat)
- Ubuntu16.04安装Hadoop+Spark+pyspark大数据python开发环境
- vite + vue2 + eslint 项目配置
- android 设置setmultichoiceitems设置初始化勾选_Linux内核启动:虚拟盘空间设置和内存管理结构初始化...
- 怎么查看ip地址下的php文件夹,pe下查看原系统ip的方法
- 绝地求生7月5日服务器维护,绝地求生7月5日更新到几点 吃鸡更新维护公告
- linux中常用安装程序的方法,Linux下常见的软件安装方式