Code前端首页关于Code前端联系我们

Python教程:特定于矩阵的数据结构操作

terry 2年前 (2023-09-27) 阅读数 60 #数据结构与算法

矩阵是二维数组的特例,其中每个数据元素的大小相同。因此,每个矩阵也是一个二维数组,但反之则不然。矩阵是许多数学和科学计算中非常重要的数据结构。正如我们在上一章中讨论了二维数组的结构一样,本章我们将重点讨论特定数据矩阵结构的操作。

还可以使用numpy包进行矩阵数据运算。

矩阵示例

考虑测量并记录 1 周早晨、中午、傍晚和夜间温度的情况。可以使用 numpy 中的数组方法将其转换为 7 x 5 矩阵。

from numpy import * 
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

m = reshape(a,(7,5))
print(m)
Python

运行上面的示例代码,得到以下结果 -

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]
Shell

将值输入矩阵

可以使用索引访问矩阵元素。输入方法与双行输入数据相同。

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

# Print data for Wednesday
print(m[2])

# Print data for friday evening
print(m[4][3])
Python

运行上面的示例代码并获得以下输出 -

['Wed' '15' '21' '20' '19']
23
Shell

添加行

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

m_r = append(m,[['Avg',12,15,13,11]],0)

print(m_r)
Python1运行以下输出Shell

添加列

你可以使用 insert() 方法将数据列添加到矩阵中。您可以在此处指定要添加的列的索引以及所添加列的新值的行号。在下面的示例中,新列添加到从开始的第五个位置。

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)

print(m_c)
Python

运行上面的示例代码,得到以下结果 -

[['Mon' '18' '20' '22' '17' '1']
 ['Tue' '11' '18' '21' '18' '2']
 ['Wed' '15' '21' '20' '19' '3']
 ['Thu' '11' '20' '22' '21' '4']
 ['Fri' '18' '17' '23' '22' '5']
 ['Sat' '12' '22' '20' '18' '6']
 ['Sun' '13' '15' '19' '16' '7']]
Shell

从矩阵中删除行

您可以使用

从矩阵中删除行。您必须指定行索引和轴值,其中行值为 0,列值为 1

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

m = delete(m,[2],0)

print(m)
Python

运行上面的示例代码,得到以下结果 -

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]
Shell

从矩阵中删除列

您可以使用方法从矩阵中删除列。您必须为一行上的 0 和另一行上的 1 指定列索引和轴值。

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

m = delete(m,s_[2],1)

print(m)
Python

执行上述示例代码会产生以下输出 -

[['Mon' '18' '22' '17']
 ['Tue' '11' '21' '18']
 ['Wed' '15' '20' '19']
 ['Thu' '11' '22' '21']
 ['Fri' '18' '23' '22']
 ['Sat' '12' '20' '18']
 ['Sun' '13' '19' '16']]
Shell

更新矩阵的一行

仅更新矩阵中的一行值。在下面的示例中,星期几数据的所有值都标记为 0。该数字的索引是3

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
           ['Wed',15,21,20,19],['Thu',11,20,22,21],
           ['Fri',18,17,23,22],['Sat',12,22,20,18],
           ['Sun',13,15,19,16]])

m[3] = ['Thu',0,0,0,0]

print(m)
Python

执行上述代码后,会产生以下输出 -

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '0' '0' '0' '0']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门