Numpy中矩阵和数组的区别
矩阵(Matrix)和数组(Array)的区别主要有以下两点:
- 矩阵只能为2维的,而数组可以是任意维度的。
- 矩阵和数组在数学运算上会有不同的结构。
代码展示
1.矩阵的创建
- 采用mat函数创建矩阵
class numpy.mat(data, dtype=None)
(注释:Unlike matrix, asmatrix does not make a copy if the input is already a matrix or an ndarray. Equivalent to matrix(data, copy=False).这句话的含义也就是说,当传入的参数为一个矩阵或者ndarray的数组时候,返回值是和传入参数相同的引用,也就是当传入参数发生改变时候,返回值也会相应的改变。相当于numpy.matrix(data, copy=False))
[[1 2]
[3 4]]
e的类型: <class 'numpy.matrix'>
---------------
[[1 2]
[3 4]]
e1的类型: <class 'numpy.matrix'>
---------------
改变e中的值,分别打印e和e1
[[0 2]
[3 4]]
[[0 2]
[3 4]]
---------------
- 采用matrix函数创建矩阵
class numpy.matrix(data, dtype=None, copy=True)
(注释:Returns a matrix from an array-like object, or from a string of data. A matrix is a specialized 2-D array that retains its 2-D nature through operations. It has certain special operators, such as * (matrix multiplication) and ** (matrix power).)
import numpy as np e = np.array([[1, 2], [3, 4]])
# e = '1 2;3 4' # 通过字符串创建矩阵
e1 = np.matrix(e) # 传入的参数为矩阵时
print(e1)
print('e1的类型:', type(e1))
print('---'*5)
print('改变e中的值,分别打印e和e1')
e[0][0] = 0
print(e)
print(e1)
print('---'*5)
[[1 2]
[3 4]]
e1的类型: <class 'numpy.matrix'>
---------------
改变e中的值,分别打印e和e1
[[0 2]
[3 4]]
[[1 2]
[3 4]]
---------------
2.数组的创建
- 通过传入列表创建
- 通过range()和reshape()创建
- linspace()和reshape()创建
- 通过内置的一些函数创建
import numpy as np e = [[1, 2], [3, 4]]
e1 = np.array(e)
print(e)
n = np.arange(0, 30, 2) # 从0开始到30(不包括30),步长为2
n = n.reshape(3, 5)
print(n)
o = np.linspace(0, 4, 9)
o.resize(3, 3)
print(o)
a = np.ones((3, 2))
print(a)
b = np.zeros((2, 3))
print(b)
c = np.eye(3) # 3维单位矩阵
print(c)
y = np.array([4, 5, 6])
d = np.diag(y) # 以y为主对角线创建矩阵
print(d)
e = np.random.randint(0, 10, (4, 3))
print(e)
---------------
[[1, 2], [3, 4]]
[[ 0 2 4 6 8]
[10 12 14 16 18]
[20 22 24 26 28]]
[[0. 0.5 1. ]
[1.5 2. 2.5]
[3. 3.5 4. ]]
[[1. 1.]
[1. 1.]
[1. 1.]]
[[0. 0. 0.]
[0. 0. 0.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[4 0 0]
[0 5 0]
[0 0 6]]
[[3 0 2]
[1 5 1]
[9 4 7]
[5 8 9]]
3.矩阵和数组的数学运算
- 矩阵的乘法和加法
矩阵的乘法和加法和线性代数的矩阵加法和乘法一致,运算符号也一样用*,**表示平方,例如e**2 =e*e。
- 数组的加法和乘法
数组的乘法和加法为相应位置的数据乘法和加法。
Numpy中矩阵和数组的区别的更多相关文章
- Python numpy中矩阵的用法总结
关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...
- opencv、numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
opencv.numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
- Python数据分析--Numpy常用函数介绍(6)--Numpy中矩阵和通用函数
在NumPy中,矩阵是 ndarray 的子类,与数学概念中的矩阵一样,NumPy中的矩阵也是二维的,可以使用 mat . matrix 以及 bmat 函数来创建矩阵. 一.创建矩阵 mat 函数创 ...
- C语言中指针和数组的区别
看<C专家编程>一书,看到数组与指针并不相同一章,遂做了一段测试: 代码: #include <stdio.h> #include <stdlib.h> int m ...
- 上机实践 - - 一个例子了解C/C++中指针与数组的区别
本例子来自于<剑指Offer>(P37) 解答如下: size1:20 data1是一个数组,sizeof(data1)是求数组大小. 这个数组包含5个整数,每个整数4个字节,共20字节. ...
- numpy中矩阵乘法,星乘(*)和点乘(.dot)的区别
import numpy a = numpy.array([[,], [,]]) b = numpy.array([[,], [,]]) 星乘表示矩阵内各对应位置相乘,矩阵a*b下标(0,0)=矩阵a ...
- 【转】numpy中 meshgrid 和 mgrid 的区别和使用
转自:https://www.cnblogs.com/shenxiaolin/p/8854197.html 一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型 ...
- Python的 numpy中 meshgrid 和 mgrid 的区别和使用
一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对. 示例展示: 由上面的示例展示 ...
- [转]Numpy中矩阵对象(matrix)
numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中. class numpy.matr ...
随机推荐
- learning java 读写其他进程的数据
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...
- Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新
一.为什么需要使用Vue.set? vue中不能检测到数组和对象的两种变化: 1.数组长度的变化 vm.arr.length = 4 2.数组通过索引值修改内容 vm.arr[1] = ‘aa’ Vu ...
- struct tcphdr
包含在/usr/src/linux/include/linux/tcp.h struct tcphdr { __be16 source; __be16 dest; __be32 seq; __be32 ...
- 初始CSS3小知识【99%人不知道的小技巧】
一.引入样式 1.行内样式表 <h1 style="color: red;font-size: 18px;">10-30</h1> 2.内 ...
- 实现MyBatis批量查询
Service public List<DeviceBean> getDeviceList(Map<String, Object> parameter);Serv ...
- java 优秀开源项目
一.https://github.com/zhangdaiscott/jeecg-boot 简介:一款基于代码生成器的JAVA快速开发平台!全新架构前后端分离:SpringBoot 2.x,Ant D ...
- CodeMirror在线代码编辑器使用
CodeMirror官网地址为:https://codemirror.net/ CodeMirror作为一款代码编辑器,其应用场景主要是在线网站写代码.如现在的leetcode.洛谷.code-vs等 ...
- CTF SSTI(服务器模板注入)
目录 基础 一些姿势 1.config 2.self 3.[].() 3.url_for, g, request, namespace, lipsum, range, session, dict, g ...
- sip user Authentication and 401
https://www.vocal.com/sip-2/sip-user-authentication/ https://tools.ietf.org/html/rfc3261 SIP User Au ...
- java如何实现批量删除pdf指定的页数
依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-app ...