日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多维数组的行优先和列优先, 数据描述语言

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多维数组的行优先和列优先, 数据描述语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多維數組的行優先和列優先

這里以numpy為工具,介紹一下多維數組的行優先和列優先的概念。

首先我們生成一個3x4的數組:

arr = np.arange(12).reshape(3,4)

它的形狀是這樣的:

如果我們按照C語言的方式存儲它,也就是行優先存儲的話,那么在內存中,它的形狀是這樣的:

這種存儲方式又被稱作C contiguous array。

另一派存儲方式,也就是列優先存儲,它的代表是Fortran語言。上面的數組在內存中的形狀就是這樣的了:

這種存儲方式又被稱作Fortran contiguous array。

numpy對這兩種方式都支持,而且還巧妙的利用了兩者之間的差異,對運算進行了簡化。

arr2 = arr.T

比如上述轉置操作,你以為numpy真的做了轉置運算嗎?其實不然。

>>>arr.flags.f_contiguous False >>>arr2.flags.f_contiguous True

看到沒,這里僅僅設置了一個標志而已。

C和Fortran的這種差異,實際上是上世紀60年代,兩大IT巨頭AT&T和IBM之間戰爭的結果,并深遠的影響了后來的軟件。比如在通用計算領域,主要采用C格式,而數值計算領域,則多采用Fortran格式。

典型的例子是Matlab。它最早是作為一些Fortran數學庫的封裝而存在的,因此很自然的采用了Fortran格式。OpenGL、OpenVX之類的接口,實際上也沿襲了這種路徑依賴。

Fortran作為最早的高級語言(1957年),至今仍有很強的生命力,這主要歸功于:

1.對數組、復數等數值計算的原生支持。這些語法糖,對于非程序員的科技人員很友好。

2.沒有指針等復雜特性。這一點既降低了上手的門檻,又對于編譯器優化(尤其是現在比較流行的并行計算優化)很有好處。普通科技人員即使沒有經過特殊的程序訓練,也可以寫出非常高效的程序。

數據描述語言

JSON

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。

其官網為:

http://json.org/

官網上列出了各種語言的JSON解析庫。其中C語言的解析庫中以json-c最為流行,其官網為:

https://github.com/json-c/json-c

和XML Path類似,JSON也定義了自己的JSON Path。參見:

http://goessner.net/articles/JsonPath/

參考:

https://addons.mozilla.org/zh-CN/firefox/addon/jsonview/

jsonview是一個用于檢驗JSON格式是否合法的Firefox插件。

http://www.bejson.com/

一個在線驗證JSON語法的庫。

https://docs.python.org/2/library/json.html

python自帶的json包的文檔

https://mp.weixin.qq.com/s/qk8hlcE3oxa-4a-G4sxGVg

為什么說JSON不適合做配置語言?

Jackson

Jackson是常用的Java語言的JSON庫。

Maven安裝:

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.6.4</version> </dependency>

Jackson提供了三種處理方法:

流式API:(也稱為"增量分析/生成")讀取和寫入 JSON 內容作為離散事件。類似于XML SAX。

com.fasterxml.jackson.JsonParser讀,com.fasterxml.jackson.JsonGenerator寫。

樹模型:提供一個JSON文檔可變內存樹的表示形式。類似于XML DOM。

com.fasterxml.jackson.databind.ObjectMapper生成樹;樹組成JsonNode節點集。

數據綁定:JSON和POJO相互轉換,基于屬性訪問器規約或注解。

Jackson不支持JSON Path,可以使用以下項目:

https://github.com/jayway/JsonPath

這個項目的后端可以選擇Jackson或Gson。

BSON

Binary JSON是在JSON的基礎上,添加了索引及數據類型的一種二進制格式。相比JSON,它犧牲了可閱讀性,得到了可遍歷性和高效性。

BSON最早由MongoDB項目提出并使用,它的官網為:

http://bsonspec.org/

從中可以看出大多數語言的BSON解析庫,都是MongoDB項目提供的。

YAML

YAML(Yet Another Markup Language)是JSON的超集。它沒有JSON那么流行,主要被用于科學計算領域,比如OpenCV項目。它的官網為:

http://yaml.org/

這個網站很有特色,它本身就是一個YAML文件。

Protocol Buffers

Protocol Buffers是Google公司開發的一種數據描述語言。它的官網為:

https://github.com/google/protobuf

文檔:

https://developers.google.com/protocol-buffers/

Tutorials:

https://developers.google.com/protocol-buffers/docs/tutorials

安裝:

sudo apt install protobuf-compiler python-protobuf

這是一種注重效率,而可閱讀性幾乎為零的二進制格式。其效率超過BSON,但除非有相關格式文件,否則完全無法閱讀。而BSON作為JSON的擴展,只有擴展的那部分不可讀,其余部分仍保留JSON的可讀性。

格式文件是Protocol Buffers中的重要概念,也是和JSON等格式在使用思路上最大的區別。

JSON采用的是,不同的語言提供不同的庫來解析的方式。

而Protocol Buffers使用同一個格式文件,為不同語言生成相應的代碼。這和CORBA的做法很類似。

與Protocol Buffers類似的方案,還有Facebook提出的Thrift、ZeroC提出的Slice和Hadoop Avro。

簡易示例

test.proto:

message TestMsg {required int32 id=1;required int32 time=2;optional string note=3; }

protoc --python_out=./python/ test.proto

test.py:

import google.protobuf from test_pb2 import TestMsg import timetest = TestMsg() test.id=1 test.time=int(time.time()) test.string="asdftest" print test test_str = test.SerializeToString() print test_strtest1 = TestMsg() test1.ParseFromString(test_str) print test1

示例代碼下載:

https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/helloworld/protobuf

參考:

http://www.cnblogs.com/o87481299/p/4199892.html

python google protobuf使用

https://mp.weixin.qq.com/s/D1bjGRCFH6Ag9_xIfQ34SA

Google Protocol Buffers淺析

proto3

Protocol Buffers本身也有若干版本,且互不兼容。目前用的比較多的是proto2和proto3。

值得注意的是,proto3生成的python文件,仍然叫xxxx_pb2.py。

proto3最大的改進在于支持如下形式的proto文件的嵌套:

import "tensorflow/core/framework/node_def.proto";

參考:

http://www.cnblogs.com/ghj1976/p/4565846.html

proto3筆記

https://blog.csdn.net/menghaocheng/article/details/80176763

Python3-如何使用protobuf 3

HDF5

HDF是用于存儲和分發科學數據的一種自我描述、多對象文件格式。HDF是由美國國家超級計算應用中心(NCSA)創建的,以滿足不同群體的科學家在不同工程項目領域之需要。

官網:

https://support.hdfgroup.org/HDF5/

它的python接口:

http://www.h5py.org/

HDF5 for Python

參考:

https://www.phodal.com/blog/try-hdf5-in-mac-os-with-shell/

HDF5小試——高大上的多對象文件格式

PMML

PMML(Predictive Model Markup Language) 是一個開放的工業標準,它以XML為載體將上述數據挖掘任務標準化,可以把某一產品所創建的數據挖掘方案應用于任何其它遵從PMML標準的產品或平臺中,而不需考慮分析和預測過程中的具體實現細節。使得模型的部署擺脫了模型開發和產品整合的束縛,為商業智能產品、數據倉庫和云計算中的數據挖掘模型的應用環境開拓了新的篇章。

官網:

http://dmg.org/

參考:

https://www.ibm.com/developerworks/cn/xml/x-1107xuj/

PMML標準介紹及其在數據挖掘任務中的應用

FlatBuffers

FlatBuffers是Google為嵌入式平臺打造的二進制格式,執行效率優于Protocol Buffers。但它的出名,卻是由于Facebook最早在其Android App上使用。因此,有的文章也將之稱為是Facebook發明的,但其實這是不正確的。

官網:

https://google.github.io/flatbuffers/

參考:

http://www.cnblogs.com/wingyip/p/5185593.html

FlatBuffers初探

總結

以上是生活随笔為你收集整理的多维数组的行优先和列优先, 数据描述语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 五月婷婷丁香激情 | 激情视频激情小说 | 麻豆福利在线 | 全部免费毛片在线播放一个 | 日韩avxxx| 欧美精品一区二区三区在线播放 | 国产视频久久久 | 中国丰满老妇xxxxx交性 | 热久久这里只有精品 | 欧美巨大另类极品videosbest | 99国产精品99久久久久久粉嫩 | 午夜看黄神器 | 国产老妇伦国产熟女老妇视频 | 久久国色 | 人人爱人人搞 | 免费在线播放黄色片 | 一区二区激情 | 99国产精品免费视频 | 污视频免费在线观看网站 | 草草影院ccyycom | 一区二区三区四区人妻 | 欧美系列在线观看 | 久久久999国产精品 天堂av中文在线 | 永久免费av无码网站性色av | 久久精品片 | 欧美36p | 他趴在我两腿中间添得好爽在线看 | 无码黑人精品一区二区 | 亚洲黄站| 国产毛片儿 | 黄色一级片在线看 | 中文字幕无码精品亚洲资源网久久 | 美女无遮挡免费网站 | 欧美福利在线视频 | 欧美综合在线一区 | 日韩欧美在线观看 | 草逼免费视频 | 91日本在线 | 黄色片免费看 | 伊人久久久久久久久久 | 日韩一区二区三 | 波多野结衣av中文字幕 | 美国福利片 | 国产成人av一区二区三区 | 欧美精品一线 | 国产黄在线免费观看 | 天天操人人干 | 国内毛片毛片毛片毛片 | 嫩草视频91 | 日韩福利电影在线 | 久久久久久久久久久久久久久久久久久 | 五月天堂网 | 女女同性高清片免费看 | av自拍偷拍| 亚洲一区二区三区免费在线观看 | 五月激情婷婷网 | 色阁av| 成人综合网站 | 欧美综合图区 | 理想之城连续剧40集免费播放 | 狠狠五月婷婷 | 国产日韩一区二区三区 | 久久不卡视频 | 在线干| 伊人毛片 | 干干干日日日 | 国产资源在线免费观看 | 国产片网址 | 亚洲婷婷综合网 | 叼嘿视频在线免费观看 | 久久精品在线免费观看 | 亚洲精品久久久久久久久久 | 福利一二三区 | 亚洲aⅴ网站 | 成人精品免费网站 | 日韩一级色 | 色网站在线观看 | 欧美经典一区二区三区 | 欧美极品在线视频 | 免费观看日韩毛片 | av久色 | 成人97 | 亚洲一区二区 | 第五色婷婷 | 亚洲午夜av在线 | 亚洲日本一区二区三区 | 久草视频资源 | 人妻丰满熟妇岳av无码区hd | 国产精选一区二区三区 | 欧美自拍偷拍 | 日本网站在线免费观看 | 丰满少妇理论片 | 成人久久久精品乱码一区二区三区 | 国产超级av | cao国产| 国产福利视频一区 | 久久精品区 | 一级黄色录像免费观看 | 免费看a级片 |