详解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 28 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Python离线安装PIL 模块的方法
Jan 08 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
Python基于opencv调用摄像头获取个人图片的实现方法
Feb 21 Python
Django 外键的使用方法详解
Jul 19 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
Python异常处理机制结构实例解析
Jul 23 Python
python 实现控制鼠标键盘
Nov 27 Python
Django框架实现在线考试系统的示例代码
Nov 30 Python
python Tkinter的简单入门教程
Apr 11 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
PHP 高手之路(二)
2006/10/09 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
python获取当前日期和时间的方法
2015/04/30 Python
Python rstrip()方法实例详解
2018/11/11 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
家庭贫困证明
2014/09/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
小学生手册家长意见
2015/06/03 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
学者《孟子》名人名言
2019/08/09 职场文书