最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 如何解決稀疏矩陣運算

 更新時間:2021年05月26日 09:19:36   作者:Thole Lee  
這篇文章主要介紹了Python 解決稀疏矩陣運算的操作,具有很好的參考價值,希望對大家有所幫助。

用Python求解微分線性方程

因為之前用matlab也編寫過,所以前不久試著用python寫,感覺之間互通點也蠻多的,易理解。

題目:稀疏線性方程組的求解方法

簡單的方程如: AX=b

其中

A矩陣與b向量

python有很多功能庫,這些庫對于編程很有幫助,可以在pycharm的Project Interpreter導(dǎo)入庫,例如numpy、os、scipy等比較基礎(chǔ)的庫,

下面是用來求解的代碼:

import numpy as np
from scipy import linalg
import os
#輸入矩陣維數(shù)
print("你好,這里是計算稀疏矩陣線性方程組的地方,非誠勿擾!")
dism_num = input("你的A矩陣維數(shù)是:")
dism_num = int(dism_num)
print("接下來請你依次輸入矩陣的行向量(注意只能輸入英文逗號,):")
A =[]
#X =[]
for i in range(1,dism_num+1):
    a=input("第"+str(i)+"行向量是:")
    alist = a.split(",")
    alist = [int(alist[j]) for j in range(len(alist))]
    A.append(alist)
print("你所輸入的矩陣行向量是:")
print(A)
#記錄輸入的X矩陣

#輸入向量b
print("輸入b向量")
b = input("b向量是:")
b_list = b.split(",")
b_list = [int(b_list[j]) for j in range(len(b_list))]
print("你輸入的b向量是:")
print(b_list)
#記錄b向量

#詢問是否計算單個答案(單元素)
ask = input("是否只需求解單個值:(是或否)")
while(True):
    if ask == '是':
        ask_a = 'T'
        ask_num = input("請繼續(xù)輸入你所需要的答案序號:")
        ask_num = int(ask_num)
        if ask_num<=dism_num and ask_num>0:
            print("OK,馬上幫你計算")
            break
        else:
            print("輸入的值超出矩陣維數(shù),請重新輸入:")
    if ask == '否':
        ask_a = 'F'
        break
#詢問完成,只有當用戶輸入正確的序號才可以進行計算,否則重新詢問

#開始計算x向量了
A = np.array(A)
b = np.array(b_list)
x = linalg.solve(A,b)
print("計算的結(jié)果的:")
if ask_a == 'F':
    print(x)
if ask_a =='T':
    print(x[ask_num-1])
#計算完x向量了

os.system("pause")
#用于py文件結(jié)束玩暫停顯示結(jié)果

其基本流程如圖:

代碼開發(fā)流程

運行結(jié)果如下:

補充:python 多線程稀疏矩陣乘法

看代碼吧~

import threading, time
import numpy as np
res = []
class MyThread(threading.Thread):
    def __init__(self,i,j,m1,m2):
        threading.Thread.__init__(self)
        self.x, self.y = i,j
        self.m1, self.m2 = m1, m2
    def run(self):
        global res, lock
        if lock.acquire():
            m1 = self.m1[self.m1[:,0]==self.x]
            m2 = self.m2[self.m2[:,1]==self.y]
            value = 0.
            for item1 in m1:
                for item2 in m2:
                    if item1[1] == item2[0]:
                        value += item1[2]*item2[2]
            res.append([self.x,self.y,value])
            lock.release()
if "__main__" == __name__:
    m1 = [[2,2],[0,0,1],[0,1,2],[1,0,3],[1,1,4]]
    m2 = [[2,3],[0,0,2],[0,2,1],[1,2,3],[1,1,4]]
    s1, s2 = m1[0], m2[0]
    assert s1[1]==s2[0], 'mismatch'
    m1_value = np.array(m1[1:])
    m2_value = np.array(m2[1:])
    rows, cols = s1[0], s2[1]
    res.append([rows, cols])
    ThreadList = []
    lock = threading.Lock()
    for i in range(rows):
        for j in range(cols):
            t = MyThread(i,j,m1_value,m2_value)
            ThreadList.append(t)
    for t in ThreadList:
        t.start()
    for t in ThreadList:
        t.join()
    print (res)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 剪繩子的多種思路實現(xiàn)(動態(tài)規(guī)劃和貪心)

    Python 剪繩子的多種思路實現(xiàn)(動態(tài)規(guī)劃和貪心)

    這篇文章主要介紹了Python 剪繩子的多種思路實現(xiàn)(動態(tài)規(guī)劃和貪心),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-02-02
  • 使用Python編寫一個模仿CPU工作的程序

    使用Python編寫一個模仿CPU工作的程序

    這篇文章主要介紹了使用Python編寫一個模仿CPU工作的程序,包括簡單的內(nèi)存和輸入輸出的實現(xiàn),本文中的例子需要一定的Python編程基礎(chǔ),是深入Python的實踐,需要的朋友可以參考下
    2015-04-04
  • Python?numpy下幾種fft函數(shù)的使用方式

    Python?numpy下幾種fft函數(shù)的使用方式

    numpy中有一個fft的庫,scipy中也有一個fftpack的庫,各自都有fft函數(shù),兩者的用法基本是一致的,下面這篇文章主要給大家介紹了關(guān)于Python?numpy下幾種fft函數(shù)的使用方式,需要的朋友可以參考下
    2022-08-08
  • Python中字典映射類型的學(xué)習教程

    Python中字典映射類型的學(xué)習教程

    這篇文章主要介紹了Python中字典映射類型的學(xué)習教程,是Python入門學(xué)習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • Django設(shè)置Postgresql的操作

    Django設(shè)置Postgresql的操作

    這篇文章主要介紹了Django設(shè)置Postgresql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • django連接oracle時setting 配置方法

    django連接oracle時setting 配置方法

    今天小編就為大家分享一篇django連接oracle時setting 配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 基于Python實現(xiàn)捕獲,播放和保存攝像頭視頻

    基于Python實現(xiàn)捕獲,播放和保存攝像頭視頻

    這篇文章主要為大家分享一下Python操作視頻最基本的操作,包括讀取和播放視頻和保存視頻。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • python操作鏈表的示例代碼

    python操作鏈表的示例代碼

    這篇文章主要介紹了python操作鏈表的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • 詳解Python+Pyecharts實現(xiàn)漏斗圖的繪制

    詳解Python+Pyecharts實現(xiàn)漏斗圖的繪制

    漏斗圖是一個簡單的散點圖,反映研究在一定樣本量或精確性下單個研究的干預(yù)效應(yīng)估計值。本文將用Python Pyecharts實現(xiàn)漏斗圖的繪制,需要的可以參考一下
    2022-06-06
  • 利用Python批量循環(huán)讀取Excel的技巧分享

    利用Python批量循環(huán)讀取Excel的技巧分享

    這篇文章主要為大家詳細介紹了何用Python批量循環(huán)讀取Excel,文中的示例代碼講解詳細,對我們的學(xué)習或工作有一定的幫助,感興趣的可以了解一下
    2023-07-07

最新評論

佛山市| 汽车| 棋牌| 广饶县| 颍上县| 曲阳县| 伊宁市| 抚州市| 大理市| 吉木萨尔县| 秀山| 兰州市| 胶州市| 新疆| 许昌市| 射阳县| 乳山市| 荥经县| 临桂县| 门头沟区| 彝良县| 河曲县| 东港市| 湘阴县| 丽水市| 邳州市| 乌拉特中旗| 油尖旺区| 南京市| 辛集市| 民丰县| 尖扎县| 纳雍县| 六安市| 瓮安县| 扎兰屯市| 东平县| 遵义市| 星子县| 瓮安县| 舞阳县|