numpy(02 數據類型和數據類型轉換)

numpy(01 入門)?

目錄

一、Python NumPy 數據類型

1.1 NumPy 基本類型

1.2 數據類型對象 (dtype)

1.3 具體實例

二、Numpy數據類型轉換?

2.1 浮點數據轉換

2.2 整型數據轉換

2.3 浮點數轉整數


?

一、Python NumPy 數據類型

1.1 NumPy 基本類型

下表列舉了常用 NumPy 基本類型。

名稱描述
bool_布爾型數據類型(True 或者 False)
int_默認的整數類型(類似于 C 語言中的 long,int32 或 int64)
intc與 C 的 int 類型一樣,一般是 int32 或 int 64
intp用于索引的整數類型(類似于 C 的 ssize_t,一般情況下仍然是 int32 或 int64)
int8字節(-128 to 127)
int16整數(-32768 to 32767)
int32整數(-2147483648 to 2147483647)
int64整數(-9223372036854775808 to 9223372036854775807)
uint8無符號整數(0 to 255)
uint16無符號整數(0 to 65535)
uint32無符號整數(0 to 4294967295)
uint64無符號整數(0 to 18446744073709551615)
float_float64 類型的簡寫
float16半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位
float32單精度浮點數,包括:1 個符號位,8 個指數位,23 個尾數位
float64雙精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位
complex_complex128 類型的簡寫,即 128 位復數
complex64復數,表示雙 32 位浮點數(實數部分和虛數部分)
complex128復數,表示雙 64 位浮點數(實數部分和虛數部分)

numpy 的數值類型實際上是 dtype 對象的實例,并對應唯一的字符,包括 np.bool_,np.int32,np.float32,等等。

每個內建類型都有一個唯一定義它的字符代碼如下:

1.2 數據類型對象 (dtype)

數據類型對象是用來描述與數組對應的內存區域如何使用,這依賴如下幾個方面:

  • 數據的類型(整數,浮點數或者 Python 對象)
  • 數據的大小(例如, 整數使用多少個字節存儲)
  • 數據的字節順序(小端法或大端法)
  • 在結構化類型的情況下,字段的名稱、每個字段的數據類型和每個字段對應的內存塊的區域
  • 如果數據類型是子數組,它的形狀和數據類型

字節順序是通過對數據類型預先設定”<“或”>”來決定的。”<“意味著小端法(最高有效字節在最前面的方式稱為大端法)。”>”意味著大端法(最低有效字節在最前面的方式成為小端法)。?

小端與大端的區別:

字節順序高位字節存儲位置低位字節存儲位置
大端(Big-endian)低地址存高位字節高地址存低位字節
小端(Little-endian)低地址存低位字節高地址存高位字節

?dtype 對象是使用以下語法構造的:

numpy.dtype(object, align, copy)
  • object – 要轉換為的數據類型對象
  • align – 如果為 true,填充字段使其類似 C 的結構體。
  • copy – 復制 dtype 對象 ,如果為 false,則是對內置數據類型對象的引用

1.3 具體實例

實例 1:轉換為int32

import numpy as np
dt = np.dtype(np.int32)
print(dt)

運行結果:?

?

例 2:int8, int16, int32, int64 四種數據類型可以使用字符串 ‘i1’, ‘i2′,’i4′,’i8’ 代替

import numpy as np
dt = np.dtype('i4')
print(dt)

運行結果:

?

實例 3:字節順序標注

import numpy as np
dt = np.dtype('<i4')
print(dt)

運行結果:

?

例 4:結構化數據類型

# 首先創建結構化數據類型
import numpy as np
dt = np.dtype([('age',np.int8)]) 
print(dt)

運行結果:

?

例 5:將數據類型應用于 ndarray 對象

import numpy as np
a = np.array([(10,),(20,),(30,)]) 
print(a)
print('-'*50)
dt = np.dtype([('age',np.int8)]) 
a = np.array([(10,),(20,),(30,)], dtype = dt) 
print(a)

運行結果:

?

例 6:類型字段名可以用于存取實際的 age 列

import numpy as np
dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
print(a['age'])

運行結果:

?

例 7:下面的示例定義一個結構化數據類型 student,包含字符串字段 name,整數字段 age,及浮點字段 marks,并將這個 dtype 應用到 ndarray 對象。

import numpy as np
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
print(student)

運行結果:

?

例8:

import numpy as np
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) 
print(a)

運行結果:?

?

二、Numpy數據類型轉換?

2.1 浮點數據轉換

例1:生成一個浮點數組(浮點型默認是 float64

import numpy as np
a=np.random.random (4)
print(a)
print(a.dtype)
print(a.shape)

運行結果:

例2:改變dtype為?float32,數組長度翻倍

import numpy as np
a=np.random.random (4)
a.dtype ="float32"
print(a)
print(a.dtype)
print(a.shape)#看下面有關shape的注釋

運行結果:

?

?shape 是 NumPy 中 ndarray 對象的一個屬性,用于表示數組的維度(dimensions)和每個維度的大小(size)。它以元組的形式返回,元組的每個元素表示數組在相應維度上的大小。

shape的含義

  • 對于 一維數組shape 返回數組的長度(即元素的數量)。
  • 對于 二維數組shape 返回一個元組,其中第一個元素表示數組的行數,第二個元素表示列數。
  • 對于 三維及更高維數組shape 返回一個多元素的元組,其中每個元素表示數組在對應維度上的大小。?

例3:改變dtype=?float,默認類型就是float64,數組長度也變回最初的4

import numpy as np
a=np.random.random (4)
a.dtype ="float"
print(a)
print(a.dtype)
print(a.shape)

運行結果:?

?

2.2 整型數據轉換

把a變為整數?int64,生成長度為4的整型數組

例4:?

import numpy as np
a=np.random.random (4)
a.dtype="int64"
print(a)
print(a.dtype)
print(a.shape)

運行結果:

?

2.3 浮點數轉整數

例5:?

import numpy as np
b=np.array([1 ,2 ,3 ,4 ])
print(b.dtype)

運行結果:

?

例6:用 astype(int) 得到整數,并且不改變數組長度

import numpy as np
b=np.array([1 ,2 ,3 ,4 ],dtype=np.int32)
print(b)
print(b.shape)
print(b.dtype)

運行結果:

?

?

?

?

?

?

?

?

?

?

?

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

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

相關文章

【雅思博客04】Silence please!

A: Those people in front of us are making so much noise. It’s so inconsiderate! B: Don’t worry about it; it’s not such a big deal. A: Oh... I can’t hear a thing! Excuse me, can you keep it down? C: Sure, sorry about that! A: Someone’s phone is ri…

【大語言模型_3】ollama本地加載deepseek模型后回答混亂問題解決

背景&#xff1a; 本地下載了DeepSeek-R1-Distill-Qwen-7B模型后&#xff0c;通過ollama create DeepSeek-R1-Distill-Qwen-7B -f ds7b.mf加載模型啟動后回答混亂&#xff0c;無法使用。 解決方法 重新下載模型&#xff0c;選擇了DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf 重…

nginx ngx_http_module(9) 指令詳解

nginx ngx_http_module(9) 指令詳解 nginx 模塊目錄 nginx 全指令目錄 一、目錄 1.1 模塊簡介 ngx_http_uwsgi_module&#xff1a;uWSGI支持模塊&#xff0c;允許Nginx與uWSGI服務器進行通信。uWSGI是一種應用服務器協議&#xff0c;廣泛用于Python Web應用的部署。通過該…

用PyInstaller構建動態腳本執行器:嵌入式Python解釋器與模塊打包 - 簡明教程

技術場景&#xff1a; 需分發的Python工具要求終端用戶可動態修改執行邏輯將Python環境與指定庫&#xff08;如NumPy/Pandas&#xff09;嵌入可執行文件實現"一次打包&#xff0c;動態擴展"的輕量化解決方案。 ▌ 架構設計原理 1. 雙模運行時識別 # 核心判斷邏輯…

山石網科×阿里云通義靈碼,開啟研發“AI智造”新時代

近日&#xff0c;山石網科正式宣布全面接入阿里云通義靈碼企業專屬版&#xff0c;這標志著山石網科在研發智能化、自動化領域邁出重要一步&#xff0c;為研發工作注入強大的AI動力&#xff0c;實現多維度的效率飛躍。 此次合作&#xff0c;阿里云通義靈碼依托強大的AI能力&…

《被討厭的勇氣》(六)

1.自由就是被別人討厭。 2.毫不在意別人的評價、不害怕被別人討厭、不追求被他人認可&#xff0c;如果不付出以上這些代價&#xff0c;那就無法貫徹自己的生活方式&#xff0c;也就是不能獲得自由。 3.在意你的臉的只有你自己。 4.不去干涉別人的課題也不讓別人干涉自己的課題.…

使用 PyTorch 實現標準卷積神經網絡(CNN)

卷積神經網絡&#xff08;CNN&#xff09;是深度學習中的重要組成部分&#xff0c;廣泛應用于圖像處理、語音識別、視頻分析等任務。在這篇博客中&#xff0c;我們將使用 PyTorch 實現一個標準的卷積神經網絡&#xff08;CNN&#xff09;&#xff0c;并介紹各個部分的作用。 什…

SpringBoot2.0整合Redis(Lettuce版本)

前言&#xff1a; 目前java操作redis的客戶端有jedis跟Lettuce。在springboot1.x系列中&#xff0c;其中使用的是jedis, 但是到了springboot2.x其中使用的是Lettuce。 因為我們的版本是springboot2.x系列&#xff0c;所以今天使用的是Lettuce。關于jedis跟lettuce的區別&#…

qt + opengl 給立方體增加陰影

在前幾篇文章里面學會了通過opengl實現一個立方體&#xff0c;那么這篇我們來學習光照。 風氏光照模型的主要結構由3個分量組成&#xff1a;環境(Ambient)、漫反射(Diffuse)和鏡面(Specular)光照。下面這張圖展示了這些光照分量看起來的樣子&#xff1a; 1 環境光照(Ambient …

大模型工具大比拼:SGLang、Ollama、VLLM、LLaMA.cpp 如何選擇?

簡介&#xff1a;在人工智能飛速發展的今天&#xff0c;大模型已經成為推動技術革新的核心力量。無論是智能客服、內容創作&#xff0c;還是科研輔助、代碼生成&#xff0c;大模型的身影無處不在。然而&#xff0c;面對市場上琳瑯滿目的工具&#xff0c;如何挑選最適合自己的那…

stream流常用方法

1.reduce 在Java中&#xff0c;可以使用Stream API的reduce方法來計算一個整數列表的乘積。reduce方法是一種累積操作&#xff0c;它可以將流中的元素組合起來&#xff0c;返回單個結果。對于計算乘積&#xff0c;你需要提供一個初始值&#xff08;通常是1&#xff0c;因為乘法…

pgAdmin4在mac m1上面簡單使用(Docker)

問題 想要在本地簡單了解一下pgAdmin4一些簡單功能。故需要在本機先安裝看一看。 安裝步驟 拉取docker鏡像 docker pull dpage/pgadmin4直接簡單運行pgAdmin4 docker run --name pgAdmin4 -p 5050:80 \-e "PGADMIN_DEFAULT_EMAILuserdomain.com" \-e "PGAD…

ubuntu下安裝TFTP服務器

在 Ubuntu 系統下安裝和配置 TFTP&#xff08;Trivial File Transfer Protocol&#xff09;服務器可以按照以下步驟進行&#xff1a; 1. 安裝 TFTP 服務器軟件包 TFTP 服務器通常使用 tftpd-hpa 軟件包&#xff0c;你可以使用以下命令進行安裝&#xff1a; sudo apt update …

Softing線上研討會 | 自研還是購買——用于自動化產品的工業以太網

| 線上研討會時間&#xff1a;2025年1月27日 16:00~16:30 / 23:00~23:30 基于以太網的通信在工業自動化網絡中的重要性日益增加。設備制造商正面臨著一大挑戰——如何快速、有效且經濟地將工業以太網協議集成到其產品中。其中的關鍵問題包括&#xff1a;是否只需集成單一的工…

vscode創建java web項目

一.項目部署 1.shiftctrlp&#xff0c;選擇java項目 2.選擇maven create from arcetype 3.選擇webapp 4.目錄結構如下&#xff0c;其中index.jsp是首頁 5.找到左下角的servers,添加tomcat服務器 選擇 再選擇&#xff1a; 找到你下載的tomcat 的bin目錄的上一級目錄&#x…

C語言指針學習筆記

1. 指針的定義 指針&#xff08;Pointer&#xff09;是存儲變量地址的變量。在C語言中&#xff0c;指針是一種非常重要的數據類型&#xff0c;通過指針可以直接訪問和操作內存。 2. 指針的聲明與初始化 2.1 指針聲明 指針變量的聲明格式為&#xff1a;數據類型 *指針變量名…

DeepSeek R1生成圖片總結2(雖然本身是不能直接生成圖片,但是可以想辦法利用別的工具一起實現)

DeepSeek官網 目前階段&#xff0c;DeepSeek R1是不能直接生成圖片的&#xff0c;但可以通過優化文本后轉換為SVG或HTML代碼&#xff0c;再保存為圖片。另外&#xff0c;Janus-Pro是DeepSeek的多模態模型&#xff0c;支持文生圖&#xff0c;但需要本地部署或者使用第三方工具。…

什么是Dubbo?Dubbo框架知識點,面試題總結

本篇包含什么是Dubbo&#xff0c;Dubbo的實現原理&#xff0c;節點角色說明&#xff0c;調用關系說明&#xff0c;在實際開發的場景中應該如何選擇RPC框架&#xff0c;Dubbo的核心架構&#xff0c;Dubbo的整體架構設計及分層。 主頁還有其他的面試資料&#xff0c;有需要的可以…

kafka消費能力壓測:使用官方工具

背景 在之前的業務場景中&#xff0c;我們發現Kafka的實際消費能力遠低于預期。盡管我們使用了kafka-go組件并進行了相關測試&#xff0c;測試情況見《kafka-go:性能測試》這篇文章。但并未能準確找出消費能力低下的原因。 我們曾懷疑這可能是由我的電腦網絡帶寬問題或Kafka部…

【大學生職業規劃大賽備賽PPT資料PDF | 免費共享】

自取鏈接&#xff1a; 鏈接&#xff1a;https://pan.quark.cn/s/4fa45515325e &#x1f4e2; 同學&#xff0c;你是不是正在為職業規劃大賽發愁&#xff1f; 想展示獨特思路卻不知如何下手&#xff1f; 想用專業模板卻找不到資源&#xff1f; 別擔心&#xff01;我整理了全網…