详解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常用列表数据结构小结
Aug 06 Python
Python matplotlib画图实例之绘制拥有彩条的图表
Dec 28 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
详解Python字典的操作
Mar 04 Python
python图像处理入门(一)
Apr 04 Python
Python求离散序列导数的示例
Jul 10 Python
python3 enum模块的应用实例详解
Aug 12 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python数据可视化:泊松分布详解
Dec 07 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
python中Switch/Case实现的示例代码
2017/11/09 Python
python异步存储数据详解
2019/03/19 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python3运算符常见用法分析
2020/02/14 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
企业员工培训感言
2014/02/26 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
出生证明格式
2015/06/15 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
React自定义hook的方法
2022/06/25 Javascript