網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
NDArray與numpy.ndarray互相轉(zhuǎn)換
import numpy as np from mxnet import nd # numpy.ndarray 變 mx.NDArray np_val = np.array([1, 2, 3]) # 定義一個(gè)numpy.ndarray nd_val = nd.array(np_val) # 深復(fù)制 # NDArray 變 numpy.ndarray np_val_ = nd_val.asnumpy()
NumPy與ndarray簡(jiǎn)介
NumPy簡(jiǎn)介
NumPy的全名為Numeric Python,是一個(gè)開(kāi)源的Python科學(xué)計(jì)算庫(kù),它包括:
- 一個(gè)強(qiáng)大的N維數(shù)組對(duì)象ndrray;
- 比較成熟的(廣播)函數(shù)庫(kù);
- 用于整合C/C++和Fortran代碼的工具包;
- 實(shí)用的線性代數(shù)、傅里葉變換和隨機(jī)數(shù)生成函數(shù)
NumPy的優(yōu)點(diǎn):
- 對(duì)于同樣的數(shù)值計(jì)算任務(wù),使用NumPy要比直接編寫Python代碼便捷得多;
- NumPy中的數(shù)組的存儲(chǔ)效率和輸入輸出性能均遠(yuǎn)遠(yuǎn)優(yōu)于Python中等價(jià)的基本數(shù)據(jù)結(jié)構(gòu),且其能夠提升的性能是與數(shù)組中的元素成比例的;
- NumPy的大部分代碼都是用C語(yǔ)言寫的,其底層算法在設(shè)計(jì)時(shí)就有著優(yōu)異的性能,這使得NumPy比純Python代碼高效得多
當(dāng)然,NumPy也有其不足之處,由于NumPy使用內(nèi)存映射文件以達(dá)到最優(yōu)的數(shù)據(jù)讀寫性能,而內(nèi)存的大小限制了其對(duì)TB級(jí)大文件的處理;此外,NumPy數(shù)組的通用性不及Python提供的list容器。因此,在科學(xué)計(jì)算之外的領(lǐng)域,NumPy的優(yōu)勢(shì)也就不那么明顯。
數(shù)組ndarray
NumPy最重要的一個(gè)特點(diǎn)就是其N維數(shù)組對(duì)象(即ndarray),該對(duì)象是一個(gè)快速而靈活的大數(shù)據(jù)集容器,該對(duì)象由兩部分組成:
- 實(shí)際的數(shù)據(jù);
- 描述這些數(shù)據(jù)的元數(shù)據(jù);
大部分的數(shù)組操作僅僅是修改元數(shù)據(jù)部分,而不改變其底層的實(shí)際數(shù)據(jù)。數(shù)組的維數(shù)稱為秩,簡(jiǎn)單來(lái)說(shuō)就是如果你需要獲取數(shù)組中一個(gè)特定元素所需的坐標(biāo)數(shù),如a是一個(gè)2×3×4的矩陣,你索引其中的一個(gè)元素必須給定三個(gè)坐標(biāo)a[x,y,z],故它的維數(shù)就是3。而軸可以理解為一種對(duì)數(shù)組空間的分割,以數(shù)組a為例,如果我們以0為軸,那么a可以看成是一個(gè)由兩個(gè)元素構(gòu)成的數(shù)組,其中每個(gè)元素都是一個(gè)3×4的數(shù)組。
我們可以直接將數(shù)組看作一種新的數(shù)據(jù)類型,就像list、tuple、dict一樣,但數(shù)組中所有元素的類型必須是一致的,Python支持的數(shù)據(jù)類型有整型、浮點(diǎn)型以及復(fù)數(shù)型,但這些類型不足以滿足科學(xué)計(jì)算的需求,因此NumPy中添加了許多其他的數(shù)據(jù)類型,如bool、inti、int64、float32、complex64等。同時(shí),它也有許多其特有的屬性和方法。
常用ndarray屬性:
dtype
描述數(shù)組元素的類型
shape
以tuple表示的數(shù)組形狀
ndim
數(shù)組的維度
size
數(shù)組中元素的個(gè)數(shù)
itemsize
數(shù)組中的元素在內(nèi)存所占字節(jié)數(shù)
T
數(shù)組的轉(zhuǎn)置
flat
返回一個(gè)數(shù)組的迭代器,對(duì)flat賦值將導(dǎo)致整個(gè)數(shù)組的元素被覆蓋
real/imag
給出復(fù)數(shù)數(shù)組的實(shí)部/虛部
nbytes
數(shù)組占用的存儲(chǔ)空間
常用ndarray方法:
? | ? |
---|---|
reshape(…) | 返回一個(gè)給定shape的數(shù)組的副本 |
resize(…) | 返回給定shape的數(shù)組,原數(shù)組shape發(fā)生改變 |
flatten()/ravel() | 返回展平數(shù)組,原數(shù)組不改變 |
astype(dtype) | 返回指定元素類型的數(shù)組副本 |
fill() | 將數(shù)組元素全部設(shè)定為一個(gè)標(biāo)量值 |
sum/Prod() | 計(jì)算所有數(shù)組元素的和/積 |
mean()/var()/std() | 返回?cái)?shù)組元素的均值/方差/標(biāo)準(zhǔn)差 |
max()/min()/ptp()/median() | 返回?cái)?shù)組元素的最大值/最小值/取值范圍/中位數(shù) |
argmax()/argmin() | 返回最大值/最小值的索引 |
sort() | 對(duì)數(shù)組進(jìn)行排序,axis指定排序的軸;kind指定排序算法,默認(rèn)是快速排序 |
view()/copy() | view創(chuàng)造一個(gè)新的數(shù)組對(duì)象指向同一數(shù)據(jù);copy是深復(fù)制 |
tolist() | 將數(shù)組完全轉(zhuǎn)為列表,注意與直接使用list(array)的區(qū)別 |
compress() | 返回滿足條件的元素構(gòu)成的數(shù)組 |
原文鏈接:https://blog.csdn.net/xiaotao_1/article/details/79594802
相關(guān)推薦
- 2022-06-29 tomcat默認(rèn)最大連接數(shù)與調(diào)整的方法示例_Tomcat
- 2022-10-28 go語(yǔ)言?nil使用避坑指南_Golang
- 2022-08-23 C++深入探究友元使用_C 語(yǔ)言
- 2022-10-16 python正則表達(dá)式re.group()用法_python
- 2022-09-14 C#通過(guò)不安全代碼看內(nèi)存加載的示例詳解_C#教程
- 2022-12-05 GPU狀態(tài)監(jiān)測(cè)?nvidia-smi?命令的用法詳解_python
- 2022-02-24 解決:this is incompatible with sql_mode=only_full_gr
- 2024-01-27 ioc,ioc實(shí)際運(yùn)用
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支