python中asarray,Python中的!

本文目錄一覽:

如何創建pdf的buffer,讓pdf.js實現預覽pdf文件

PDF.js 是基於開放的 HTML5 及 JavaScript 技術實現的開源產品。簡單說就是一個 PDF 解析器。運用HTML5JavaScript(即pdf.js僅使用安全的web語言,不包含任何攻擊者可以用的本地代碼塊)的PDF閱讀器pdf.js,直接在標準的HTML頁面上載入和渲染PDF文件, 還可以提高安全性(不需要安裝第三方插件,安全性由瀏覽器保證),瀏覽器所做的安全措施已經為pdf.js提供了安全的運行環境。其對IE和 FireFox瀏覽器的要求是IE9+, FireFox19+。

在線示例: ,

源碼:

官網:

pdf.js VS 傳統瀏覽器讀取pdf

一般來說,PDF檔案格式都是在瀏覽器中由外掛程式來描繪,通常是Adobe自己的PDF reader或來自其他供應商的描繪工具,但這些外掛通常無法充分運用PDF的特點,而且由於含有大量的受信任代碼,使得Google Chrome瀏覽器必須運用SandBox沙箱原理,來檢查PDF描繪工具是否遭到未知病毒感染。

使用adobe,必須在本地安裝軟件才能使用,而pdf.js不依賴環境、渲染速度快(測試過,確實很快)、安全性高。

pdf.js渲染PDF文件

pdf.js渲染PDF文件的流程:Fetch pdf (url / buffer) —— canvas —— 渲染

如果要深入pdf的渲染,需要去研究pdf.js源代碼。pdf.js可通過pdf文件的地址或pdf數據流獲取pdf,具體實現是調用接口函數 PDFJs.getDoc(url/buffer)將pdf載入html,通過canvas處理, 然後渲染pdf文件。網上給出的都是通過url來獲取pdf的例子,而我在做項目的時候,後台(python)要求是發pdf的數據流給前台,前台接收pdf的buffer,然後通過pdf.js來渲染。當然最初嘗試buffer出現了很多問題,具體問題總結如下:

1)如何通過$.ajax接收後台發給前台的buffer數據;

2)如何將buffer傳給pdf.js來處理(這裡我使用了viewer.js, 所以需要考慮的是如何將buffer傳給viewer.js來處理);

3)如何將pdf.js轉換成pdf.js可以接收的buffer格式;

(對應問題解決見代碼注釋)

註:viewer.js是pdf.js的擴展,其將打印、翻頁、縮放等功能進行了實現,且界面非常好看。也就是說如果你引入了viewer.js,pdf的渲染和渲染之後的功能界面都已經幫你實現了,你不用自己去寫界面。

先從官網: 下載代碼,然後使用文件viewer.html , 我的html就是在viewer.html 的基礎上修改的,下面我給出buffer的例子:

!DOCTYPE html

html dir=”ltr” mozdisallowselectionprint moznomarginboxes

head

meta charset=”utf-8″

meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″

meta name=”google” content=”notranslate”

title在線預覽/title

{% load static %}{% get_static_prefix as STATIC_URL %}

link href=”{{STATIC_URL}}css/preview.css” rel=”stylesheet” type=”text/css” /

link rel=”stylesheet” href=”{{STATIC_URL}}pdfjs/web/viewer.css”/

script type=”text/javascript” src=”{{STATIC_URL}}pdfjs/web/compatibility.js”/script

link rel=”resource” type=”application/l10n” href=”{{STATIC_URL}}pdfjs/web/locale/locale.properties”/

script type=”text/javascript” src=”{{STATIC_URL}}pdfjs/web/l10n.js”/script

script type=”text/javascript” src=”{{STATIC_URL}}pdfjs/build/pdf.js”/script

script type=”text/javascript” src=”{{STATIC_URL}}pdfjs/web/debugger.js”/script

script src=”{{STATIC_URL}}js/jquery-1.8.3.js” type=”text/javascript”/script

script type=”text/javascript”

//convertDataURIToBinary()

//不知道什麼原因如果後台直接將pdf的數據流發給前台,得到的是亂碼,將數據轉換成 Uint8Array始終不成功

//所以就讓後台將發送之前的數據流做 了base64編碼發給前台,前台再解碼得到的數據就不是亂碼了。

var BASE64_MARKER = ‘;base64,’;

var preFileId = {{mark}};

//viewer.js全局變量,傳入buffer,回答問題2

var DEFAULT_URL

$(document).ready(function(){

$.ajax({

type:”post”,

async: false,

//ajax接收pdf數據流,注意dataType值的設置是否有錯,如果不指定,jQuery將自動根據HTTP包MIME信息返回

//responseXML或responseText . 回答問題1

contentType:”application/pdf;charset=utf-8″,

url:”{% url netPan.File.views.browserFuf%}”,

data:{

id: preFileId

},

success:function(data){

var pdfAsDataUri = data;

//如果引入了viewer.js , 處理方法

var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);

DEFAULT_URL = pdfAsArray;

// 只引入了pdf.js, 未引入viewer.js, 處理方法

// var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);

// PDFJS.getDocument(pdfAsArray).then(); 自己寫pdf的處理函數

}

});

});

function convertDataURIToBinary(dataURI) { //編碼轉換,回答問題3

var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;

var base64 = dataURI.substring(base64Index);

var raw = window.atob(base64);

var rawLength = raw.length;

//轉換成pdf.js能直接解析的Uint8Array類型,見pdf.js-4068

var array = new Uint8Array(new ArrayBuffer(rawLength));

for(i = 0; i rawLength; i++) {

array[i] = raw.charCodeAt(i);

}

return array;

}

/script

!–先設置全局變量DEFAULT_URL 的值,所以要後調入viewer.js —

script type=”text/javascript” src=”{{STATIC_URL}}pdfjs/web/viewer.js”/script

/head

body

省略內容

/body

/html

numpy中array和asarray的區別

論numpy中matrix 和 array的區別,有需要的朋友可以參考下。Numpy matrices必須是2維的,但是numpy arrays (ndarrays) 可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含於Array。所以matrix 擁有array的所有特性。在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那麼a*b,就是矩陣積。

python中如何提取一組數據中的第一列數據

概述

直接提取會報錯,把array數組轉換成list,即可提取,使用numpy轉換

步驟詳解

1、直接提取嘗試:

group=[[1,2],[2,3],[3,4]]

#提取第一列元素

print(group[:,1])

#Out:TypeError: list indices must be integers or slices, not tuple

2、使用numpy轉換:

import numpy as np

group=[[1,2],[2,3],[3,4]]

#numpy轉化

ar=np.array(group)

print(ar[:,1])

#Out:[2 3 4]

拓展內容

numpy詳解

Numpy對象是數組,稱為ndarray 

維度(dimensions)稱作軸(axes),軸的個數叫做秩(rank)。註:有幾級中括號就有幾個維度

一、ndarray.attrs:

ndarray.ndim 秩

ndarray.shape 例如一個2排3列的矩陣,它的shape屬性是(2,3)

ndarray.size 數組元素的總個數

ndarray.dtype 元素類型,NumPy提供自己的數據類型

ndarray.itemsize 數組中每個元素的位元組大小

二、數組創建函數:

array

asarray將輸入轉換成ndarray

arange

ones

zeros

empty 只分配內存空間不填充任何值

eye 創建N*N單位矩陣(對角線為1)

三、數組和標量之間的運算

numpy數組的一個特點,不用編寫循環就可對數據執行批量運算,這通常稱作矢量化(vectorization)。

四、基本的索引和切片

numpy數組的索引是一個內容豐富的主題,因為選取數據子集或單個元素的方式有很多。這裡我僅詳細介紹常用的方法,對於高級功能的方式我列舉名稱,讀者可以等到要用的時候自行查閱資料。

shared_x = theano.shared(numpy.asarray(data_x, dtype=theano.config.floatX))這句話什麼意思?

我發現這句話幾乎跟我寫的一抹一樣,變量都一樣。我來給你詳解:

asarray是python numpy的函數,這裡的data_x應該就是機器學習的輸入向量,是numpy的array格式,為了把他轉成theano的floatX格式,用asarray加上後面的參數dtype改成想要的theano格式。也就是說theano.shared括號裏面的基本都是numpy。shared就是把他變成theano的全局變量。

注意:array就是數組,矩陣,asarray是一個函數,這裡就是把本來的矩陣該一下dtype重新改成符合theano dype的矩陣。

python check input data with np.asarray怎麼解決

If X is your dataframe, try using the .astype method to convert to float when running the model:

est = sm.OLS(y, X.astype(float)).fit()

python 批量定義變量

variables={}

for i in range(1,band):

    variables[‘a’+str(i)]=ds.GetRasterBand(i).ReadAsArray(0,0,cols,rows)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/239418.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:16
下一篇 2024-12-12 12:16

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論