python序列是幾維_從一個1維的位數組獲得一個特定的2維的1序列數組[Python] - python...

我正在使用Python,我需要找到執行以下任務的最有效方法。

任務:給定零和一的任何一維數組v,用k> = 0表示v的所有一維的子序列數。

我需要從v獲得一個二維數組w,使得:

1)shape(w)=(k,len(v)),

2)對于每一個i = 1,..,k,“ w”的第i行是一個全零的數組,但v的所有第i個子序列除外。

讓我舉個例子:假設$ v $是數組

v=[0,1,1,0,0,1,0,1,1,1]

然后k = 3并且w應該是數組

w=[[0,1,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,1,1,1]]

可以編寫代碼以多種方式執行此任務,例如:

import numpy as np

start=[]

end=[]

for ii in range(len(v)-1):

if (v[ii:ii+2]==[0,1]).all():

start.append(ii)

if (v[ii:ii+2]==[1,0]).all():

end.append(ii)

if len(start)>len(end):

end.append(len(v)-1)

w=np.zeros((len(start),len(v)))

for jj in range(len(start)):

w[jj,start[jj]+1:end[jj]+1]=np.ones(end[jj]-start[jj])

但是我需要在非常大的數組v上執行此任務,并且此任務是函數的一部分,然后將其進行最小化..因此,我需要它盡可能高效和快速。

因此,總而言之,我的問題是:用Python執行計算的最有效方法是什么?

參考方案

這是一種矢量化方式-

def expand_islands2D(v):

# Get start, stop of 1s islands

v1 = np.r_[0,v,0]

idx = np.flatnonzero(v1[:-1] != v1[1:])

s0,s1 = idx[::2],idx[1::2]

# Initialize 1D id array of size same as expected o/p and has

# starts and stops assigned as 1s and -1s, so that a final cumsum

# gives us the desired o/p

N,M = len(s0),len(v)

out = np.zeros(N*M,dtype=int)

# Setup starts with 1s

r = np.arange(N)*M

out[s0+r] = 1

# Setup stops with -1s

if s1[-1] == M:

out[s1[:-1]+r[:-1]] = -1

else:

out[s1+r] = -1

# Final cumsum on ID array

out2D = out.cumsum().reshape(N,-1)

return N, out2D

樣品運行-

In [105]: v

Out[105]: array([0, 1, 1, 0, 0, 1, 0, 1, 1, 1])

In [106]: k,out2D = expand_islands2D(v)

In [107]: k # number of islands

Out[107]: 3

In [108]: out2D # 2d output with 1s islands on different rows

Out[108]:

array([[0, 1, 1, 0, 0, 0, 0, 0, 0, 0],

[0, 0, 0, 0, 0, 1, 0, 0, 0, 0],

[0, 0, 0, 0, 0, 0, 0, 1, 1, 1]])

Python GPU資源利用 - python

我有一個Python腳本在某些深度學習模型上運行推理。有什么辦法可以找出GPU資源的利用率水平?例如,使用著色器,float16乘法器等。我似乎在網上找不到太多有關這些GPU資源的文檔。謝謝! 參考方案 您可以嘗試在像Renderdoc這樣的GPU分析器中運行pyxthon應用程序。它將分析您的跑步情況。您將能夠獲得有關已使用資源,已用緩沖區,不同渲染狀態上…Python sqlite3數據庫已鎖定 - python

我在Windows上使用Python 3和sqlite3。我正在開發一個使用數據庫存儲聯系人的小型應用程序。我注意到,如果應用程序被強制關閉(通過錯誤或通過任務管理器結束),則會收到sqlite3錯誤(sqlite3.OperationalError:數據庫已鎖定)。我想這是因為在應用程序關閉之前,我沒有正確關閉數據庫連接。我已經試過了: connectio…python-docx應該在空單元格已滿時返回空單元格 - python

我試圖遍歷文檔中的所有表并從中提取文本。作為中間步驟,我只是嘗試將文本打印到控制臺。我在類似的帖子中已經看過scanny提供的其他代碼,但是由于某種原因,它并沒有提供我正在解析的文檔的預期輸出可以在https://www.ontario.ca/laws/regulation/140300中找到該文檔from docx import Document from…numpy loadtxt單行/行作為列表 - python

我只有一個數據文件,例如: 1.2 2.1 3.2 我使用numpy版本1.3.0 loadtxt加載它 a,b,c = loadtxt("data.dat", usecols(0,1,2), unpack=True) 輸出是浮點數而不是數組 a = 1.2 我希望它將是: a = array([1.2]) 如果我讀取了多行文件,則該文件…Python ThreadPoolExecutor抑制異常 - python

from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454081.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454081.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454081.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習之卷積神經網絡(Convolutional Neural Networks, CNN)(二)

前面我們說了CNN的一般層次結構, 每個層的作用及其參數的優缺點等內容.深度學習之卷積神經網絡(Convolutional Neural Networks, CNN)_fenglepeng的博客-CSDN博客 一 CNN參數初始化及參數學習方法 和機器學習很多算法一樣, CNN在進行訓練之前也要進行參數的初始化操作. 我們…

GCC Inline ASM GCC內聯匯編

GCC 支持在C/C代碼中嵌入匯編代碼,這些匯編代碼被稱作GCC Inline ASM——GCC內聯匯編。這是一個非常有用的功能,有利于我們將一些C/C語法無法表達的指令直接潛入C/C代碼中,另外也允許我們直接寫 C/C代碼中使用匯編編寫簡潔高效的代碼。1.基本…

Hadoop1.x版本升級Hadoop2.x

引言 隨著企業數據化和Hadoop的應用越加廣泛,hadoop1.x的框架設計越來越無法滿足人們對需求,Apache一直在對Hadoop1.x進行修改,最后推出了新一代的Hadoop2.x。從業界使用分布式系統的變化趨勢和 hadoop 框架的長遠發展來看,MapRed…

本頁由試用版打印控件lodop6.2.6輸出_Visual Basic 6.0 Sirk 迷你版

Visual Basic 6.0 Sirk 迷你版 VB6 Sirk Mini 2019更新1、支持主流操作系統,避免原版安裝失敗的問題:支持Windows XP、Vista、Win7、Win8、Win10(32位、64位)。2、保留大部分常用功能,避免精簡版過度精簡:包含原版完整控件&#x…

深度學習之卷積神經網絡 LeNet

卷積神經網絡典型CNN LeNet:最早用于數字識別的CNNLeNet5:現在常說的一般就是LeNet5AlexNet:2012ILSVRC冠軍,遠超第二名的CNN,比LeNet更深,用多層小卷積疊加來替換單個的大卷積ZF Net:2013ILSV…

python爬蟲常見反爬措施_爬蟲常見的反爬措施有哪些

爬蟲常見的反爬措施有三種:1、header頭部信息解決方法:加User-Agent值:如果不加header頭,部分網站服務器判斷不到用戶的訪問來源,所以會返回一個404錯誤來告知你是一個爬蟲,拒絕訪問,解決辦法如…

dom4j的讀寫xml文件,讀寫xml字符串

百度了一些博客,大同小異,在選取jar包工具的時候大概看了下,大抵是jdom原始,dom4j優秀。于是做了些練習。 參考:http://www.cnblogs.com/mengdd/archive/2013/06/05/3119927.html 1 package com.test.xml;2 3 import j…

深度學習之數據增強方案和TensorFlow操作

一、數據增強的方法介紹 增加訓練數據, 則能夠提升算法的準確率, 因為這樣可以避免過擬合, 而避免了過擬合你就可以增大你的網絡結構了。 當訓練數據有限的時候, 可以通過一些變換來從已有的訓練數據集中生成一些新的數據&#x…

移動前端頭部標簽(HTML5 head meta)

<!DOCTYPE html> <!-- 使用 HTML5 doctype&#xff0c;不區分大小寫 --> <html lang"zh-cmn-Hans"> <!-- 更加標準的 lang 屬性寫法 http://zhi.hu/XyIa --> <head><!-- 聲明文檔使用的字符編碼 --><meta charsetutf-8>&l…

python新建文件夾口令_python編程快速上手—口令保管箱

之前小編為大家整理了如何成為一個優秀的程序員應該具備的品質&#xff0c;接下來為大家展示一個簡單有趣的python小項目&#xff0c;從中體會編程的樂趣。小編了解這個小項目之后&#xff0c;很是驚奇&#xff0c;覺得python竟然還可以做這樣的事情。為什么要建立口令保管箱&a…

django+nginx+uwsgi部署web站點

環境&#xff1a; django&#xff1a;1.8.16 python&#xff1a;2.7.13 pip&#xff1a;2.7 uwsgi&#xff1a;2.0.15 project路徑&#xff1a; /opt/cmdb/ Uwsgi的安裝配置 1、安裝python2.7 &#xff08;省略安裝過程&#xff09; 2、安裝pip2.7 &#xff08;省略安裝過程&…

GCC源代碼閱讀

獲取GCC源代碼 閱讀源代碼的第一步是獲取源代碼&#xff0c;巧婦難為無米之炊嘛&#xff01; 使用以下任意方法均可獲得gcc源代碼&#xff1a; svn checkout svn://gcc.gnu.org/svn/gcc/trunk SomeLocalDir &#xff08;摘自http://gcc.gnu.org/svn.html&#xff09;git clone …

Nginx 動靜分離

頁面動靜分離 后端 調用tomcat 集群 示例&#xff1a; server { listen 80; server_name www.www2.com ; root /web/www2/htmlloation /img/ {alias /web/www2/html/img/;}location ~ (\.jsp)|(\.do)$ {proxy_pass http:## //serverip:port;proxy_redirect off;// 重定向 指…

Linux 狀態命令之內存狀態 vmstat

語法 vmstat 常見命令格式如下&#xff1a; vmstat [-a] [-n] [-S unit] [delay [ count]] vmstat [-s] [-n] [-S unit] vmstat [-m] [-n] [delay [ count]] vmstat [-d] [-n] [delay [ count]] vmstat [-p disk partition] [-n] [delay [ count]] vmstat [-f] vmstat [-V]命…

使用OpenSSL實現CA證書的搭建過程

個人博客地址&#xff1a;http://www.pojun.tech/ 歡迎訪問 什么是CA CA,Catificate Authority,通俗的理解就是一種認證機制。它的作用就是提供證書&#xff08;也就是服務端證書&#xff0c;由域名&#xff0c;公司信息&#xff0c;序列號&#xff0c;簽名信息等等組成&#…

最近公共祖先 python_求二叉搜索樹的最近公共祖先

給定一個二叉搜索樹, 找到該樹中兩個指定節點的最近公共祖先。百度百科中最近公共祖先的定義為&#xff1a;“對于有根樹 T 的兩個結點 p、q&#xff0c;最近公共祖先表示為一個結點 x&#xff0c;滿足 x 是 p、q 的祖先且 x 的深度盡可能大(一個節點也可以是它自己的祖先)。”…

gdb使用實例

第一篇 概論我們將學習使用gdb來調試通過一個通過串行線同PC相連的嵌入式系統。Gdb可以調試各種程序&#xff0c;包括C、C、JAVA、PASCAL、FORAN和一些其它的語言。包括GNU所支持的所有微處理器的匯編語言。在gdb的所有可圈可點的特性中&#xff0c;有一點值得注意&#xff0c;…

Linux 監控命令之 netstat

netstat命令用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據&#xff0c;一般用于檢驗本機各端口的網絡連接情況。netstat是在內核中訪問網絡及相關信息的程序&#xff0c;它能提供TCP連接&#xff0c;TCP和UDP監聽&#xff0c;進程內存管理的相關報告。 語法 netstat [-acC…

C#遞歸搜索指定目錄下的文件或目錄

來源&#xff1a;https://www.cnblogs.com/huhangfei/p/5012978.html誠然可以使用現成的Directory類下的GetFiles、GetDirectories、GetFileSystemEntries這幾個方法實現同樣的功能&#xff0c;但請相信我不是蛋疼&#xff0c;原因是這幾個方法在遇上【System Volume Informati…

solr 配置

創建 SolrHome(solrCore) 1.解壓 solr-4.10.4.tgz 到 /usr/local/solr 2.將 solr-4.10.4/example/solr 下所有文件拷貝到 /usr/local/solrhome (此 solrhome 為自己創建的) solrhome 是 solr 運行主目錄&#xff0c;可包含多個 SolrCore 目錄SolrCore 目錄中包含運行 Solr 實例…