详解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 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
Python过滤列表用法实例分析
Apr 29 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
Python 脚本获取ES 存储容量的实例
Dec 27 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
在主流系统之上安装Pygame的方法
May 20 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
Python语言编写智力问答小游戏功能
Oct 13 Python
如何一键升级Python所有包
Nov 05 Python
详解Python中openpyxl模块基本用法
Feb 23 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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
2011/03/25 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
Openlayers实现图形绘制
2020/09/28 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python如何测试stdout输出
2020/08/10 Python
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
室内设计自我鉴定
2013/10/15 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
就业协议书的作用
2014/04/11 职场文书
学前教育专业求职信
2014/09/02 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
基于flask实现五子棋小游戏
2021/05/25 Python
Ruby处理YAML和json数据
2022/04/18 Ruby