详解numpy矩阵的创建与数据类型


Posted in Python onOctober 18, 2019

Numpy是python常用的一个类库,在python的使用中及其常见,广泛用在矩阵的计算中,numpy对矩阵的操作与纯python比起来速度有极大的差距。

一、 构造矩阵

矩阵的构造可以有多种方法:

1.使用python中的方法构造矩阵

- 生成一维矩阵

# 使用python自带的range()方法生成一个矩阵
a = list(range(100))#range()产生从0-99的一个列表
print(a)

详解numpy矩阵的创建与数据类型

- 生成二维及多维矩阵

# 使用python自带的range()方法生成一个矩阵
a = list([[1,2,3],
     [4,5,6],
     [7,8,9]])
print(a)

2.使用numpy中的方法来生成矩阵

numpy类库中生成的矩阵的数据类型为numpy.ndarray,与python中的列表不同。

(1)array()方法生成矩阵

#numpy入门
import numpy as np
data = [6,7.5,8,0,1]
data1 = [[1,2,3],[4,5,6]]
arr = np.array(data)
arr1 = np.array(data1)
print(arr)
print(arr1)

详解numpy矩阵的创建与数据类型

array()方法可以将一个列表转换为对应维度相同的numpy矩阵。

(2)生成随机矩阵方法rand()和randn()

import numpy as np
#生成一个随机数矩阵
data = np.random.randn(2,3)#是从标准正态分布中返回一个或多个样本值
data1 = np.random.rand(2,3)#随机样本位于[0, 1)中
print(data)
print(data1)

详解numpy矩阵的创建与数据类型

(3)矩阵的加法与乘法,numpy矩阵中矩阵与数字相加或相乘,则数组中每一个元素都执行相加或相乘。

import numpy as np
data = np.random.randn(10)#是从标准正态分布中返回一个或多个样本值
print(data)
print("data * 10 :\n",data*10)#每一个元素乘以十
print("data+data:\n",data+data)#实现数组中每一个位置自加操作

详解numpy矩阵的创建与数据类型

(4)零矩阵

可以用numpy的zeros()方法生成元素值全为0的矩阵。

import numpy as np
data = np.zeros(10)#生成一个一维的全零矩阵,矩阵的元素为十个
print("data:",data)
data1 = np.zeros((3,4))#生成一个三行四列的全零矩阵
print("data1:",data1)
data2 = np.zeros((3,4,3))
print("data2:",data2)#生成一个三维的全零矩阵

详解numpy矩阵的创建与数据类型

(5)一矩阵

同零矩阵一样,numpy中的ones()方法可以生产元素值全为一的矩阵

import numpy as np
data = np.ones(10)#生成一个一维的全零矩阵,矩阵的元素为十个
print("data:",data)
data1 = np.ones((3,4))#生成一个三行四列的全零矩阵
print("data1:",data1)
data2 = np.ones((3,4,3))
print("data2:",data2)

详解numpy矩阵的创建与数据类型

(6)empty()方法

python中也可以使用numpy.empty()方法来生产一些看似是0的数,语法和ones()方法一样

#numpy入门
import numpy as np
data = np.empty(10)#生成一个一维的全零矩阵,矩阵的元素为十个
print("data:",data)
data1 = np.empty((3,4))#生成一个三行四列的全零矩阵
print("data1:",data1)
data2 = np.empty((3,4,3))
print("data2:",data2)

详解numpy矩阵的创建与数据类型

就算是在编译器中显示的值为0,但其实际的值并不是0,只是一个很靠近0的数。

#numpy入门
import numpy as np
data1 = np.empty((3,4))#生成一个三行四列的全零矩阵
print("data1:\n",data1)
print("1/data1:\n",1/data1)

详解numpy矩阵的创建与数据类型

inf表示无穷大的意思,如若data1中数据的值为0的话,在运行的过程中解释器会出错。

#注意:认为np.empty会返回全0数组的想法是不安全的。很多情况下(如前所示),它返回的都是一些未初始化的垃圾值。

(7)arange()方法

类似于range()方法

import numpy as np
a = np.arange(10)
b = np.arange(2,20)
c = np.arange(0,50,5)
print("a:",a)
print("b:",b)
print("c:",c)

当只有一个参数n时表示产生一个从[0?n)的不包含n的一个矩阵

当有两个参数m,n时表示产生一个从[m,n)的不包含n的一个矩阵

当含有三个参数m,n,l时,表示从m开始,每次已l为步长,产生一个矩阵,最大值不超过n

详解numpy矩阵的创建与数据类型

(8)reshape()方法,重新生成矩阵的维度大小

import numpy as np
a = np.arange(10)
print(a)
a=a.reshape(2,5)
print(b)

详解numpy矩阵的创建与数据类型

上例中,将一个一维的十元素矩阵转换成一个两行五列的矩阵。

注意:使用reshape()方法从一维转多维时,一维矩阵的元素个数必须与多维矩阵的相同,也即是上例中的10=2*5,如若不相等的话解释器或出现错误。

(9)一些与矩阵的大小有关的值

import numpy as np
array = np.array([[1,2,3],
         [4,5,6],
         [7,8,9]])
print(array)
print(array.ndim)#维度
print(array.shape)#各维度的值
print(array.size)#元素个数
print(array.dtype)#元素的数据类型

详解numpy矩阵的创建与数据类型

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现获取某天是某个月中的第几周
Feb 11 Python
浅析Python中的序列化存储的方法
Apr 28 Python
Django卸载之后重新安装的方法
Mar 15 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
python实现静态服务器
Sep 05 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
教你漂亮打印Pandas DataFrames和Series
May 29 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 #Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 #Python
python如何将两个txt文件内容合并
Oct 18 #Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 #Python
OpenCV模板匹配matchTemplate的实现
Oct 18 #Python
python处理excel绘制雷达图
Oct 18 #Python
使用Python进行中文繁简转换的实现代码
Oct 18 #Python
You might like
我的论坛源代码(九)
2006/10/09 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
js类型检查实现代码
2010/10/29 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
Python实现遍历数据库并获取key的值
2015/05/17 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
python中set常用操作汇总
2016/06/30 Python
Python 通配符删除文件的实例
2018/04/24 Python
Python中的函数作用域
2018/05/07 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
创业计划书如何吸引他人眼球
2014/01/10 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
施工质量承诺书范文
2014/05/30 职场文书