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

作者:lwf1881 时间:2022-07-12 15:59:17 

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矩阵的创建与数据类型

来源:https://blog.csdn.net/lwf1881/article/details/102592705

标签:numpy,矩阵,创建
0
投稿

猜你喜欢

  • js实现圆形菜单选择器

    2023-09-23 19:50:54
  • 详解python读取matlab数据(.mat文件)

    2021-03-04 19:29:29
  • JavaScript贪吃蛇的实现代码

    2023-08-31 04:41:44
  • 如何通过Python3和ssl实现加密通信功能

    2022-04-28 05:55:30
  • js编写的语法高亮引擎工具

    2008-05-25 13:27:00
  • 如何Tkinter模块编写Python图形界面

    2021-03-12 20:04:50
  • 好用的VSCode头部注释插件Fileheader Pro

    2023-07-05 06:16:00
  • tensorflow常用函数API介绍

    2022-10-18 17:49:54
  • 快速解决Golang Map 并发读写安全的问题

    2024-04-30 10:03:46
  • 详解Python IO编程

    2021-06-26 08:40:48
  • java实现连接mysql数据库单元测试查询数据的实例代码

    2024-01-26 12:38:47
  • Goland编辑器设置选择范围背景色的操作

    2024-04-25 15:13:54
  • git使用.gitignore设置不生效或不起作用问题的解决方法

    2021-06-09 17:17:07
  • 如何利用数据库内容建立一个下拉式列表?

    2010-01-01 15:46:00
  • ASP ,IP地址分段计算

    2008-04-13 06:55:00
  • python去掉行尾的换行符方法

    2021-10-24 02:36:22
  • 基于Python实现简单的定时器详解

    2021-04-12 01:21:28
  • JavaScript实现控制打开文件另存为对话框的方法

    2024-05-02 16:29:04
  • javascript入门基础之私有变量

    2024-05-11 09:43:31
  • 如何安装2019Pycharm最新版本(详细教程)

    2022-09-19 12:20:54
  • asp之家 网络编程 m.aspxhome.com