網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
numpy強(qiáng)制類型轉(zhuǎn)換
今天用numpy遇到一個(gè)關(guān)于類型轉(zhuǎn)換的問(wèn)題,
import numpy as np
A = np.array([1,2,3,4,5,6,7,8,9]) ??
A[0]=3.2
print(A)
# [3 2 3 4 5 6 7 8 9]
可以發(fā)現(xiàn)A[0]=3.2,被強(qiáng)制轉(zhuǎn)換成整型3了。發(fā)生的原因是A的類型是np.int,賦值浮點(diǎn)數(shù),會(huì)自動(dòng)轉(zhuǎn)為整型。
這樣的問(wèn)題一旦出現(xiàn)很難發(fā)現(xiàn),在寫(xiě)成程序時(shí)要提前想好要用的np類型。
補(bǔ)充,兩個(gè)整型np.array做運(yùn)算時(shí),會(huì)根據(jù)運(yùn)算自動(dòng)轉(zhuǎn)換類型。
A = np.array([1,2,3,4,5,6,7,8,9])
B = np.array([2,3,4,5,6,7,8,9,10])
print(A/B)
# [0.5 ? ?0.66666667 ? ?0.75 ? ?0.8 ? ? 0.83333333 ? ? ? 0.85714286 ? 0.875 ? ? ?0.88888889 ? ?0.9 ]
numpy類型強(qiáng)制轉(zhuǎn)換api
有時(shí)候我們從文件讀取的numpy類型就不是我們想要的,需要強(qiáng)制轉(zhuǎn)換
A = np.array([1,2,3,4,5,6,7,8,9]) ?
A.dtype = 'float' ? # 不能為dtype賦予類型,數(shù)據(jù)會(huì)出錯(cuò)
A.astype('float') ?# 正確做法
numpy數(shù)據(jù)類型轉(zhuǎn)換astype,dtype
1.查看數(shù)據(jù)類型
In [11]: arr = np.array([1,2,3,4,5])
In [12]: arr
Out[12]: array([1, 2, 3, 4, 5])
// 該命令查看數(shù)據(jù)類型
In [13]: arr.dtype
Out[13]: dtype('int64')
In [14]: float_arr = arr.astype(np.float64)
// 該命令查看數(shù)據(jù)類型
In [15]: float_arr.dtype
Out[15]: dtype('float64')
2.轉(zhuǎn)換數(shù)據(jù)類型
// 如果將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù),則小數(shù)部分會(huì)被截?cái)?
In [7]: arr2 = np.array([1.1, 2.2, 3.3, 4.4, 5.3221])
In [8]: arr2
Out[8]: array([ 1.1 ? , ?2.2 ? , ?3.3 ? , ?4.4 ? , ?5.3221])
// 查看當(dāng)前數(shù)據(jù)類型
In [9]: arr2.dtype
Out[9]: dtype('float64')
// 轉(zhuǎn)換數(shù)據(jù)類型 ?float -> int
In [10]: arr2.astype(np.int32)
Out[10]: array([1, 2, 3, 4, 5], dtype=int32)
3.字符串?dāng)?shù)組轉(zhuǎn)換為數(shù)值型
In [4]: numeric_strings = np.array(['1.2','2.3','3.2141'], dtype=np.string_)
In [5]: numeric_strings
Out[5]: array(['1.2', '2.3', '3.2141'], dtype='|S6')
// 此處寫(xiě)的是float 而不是np.float64, Numpy很聰明,會(huì)將python類型映射到等價(jià)的dtype上
In [6]: numeric_strings.astype(float)
Out[6]: array([ 1.2, 2.3, 3.2141])
原文鏈接:https://blog.csdn.net/springtostring/article/details/118185716
相關(guān)推薦
- 2023-10-27 解決webpack打包后圖片加載失敗的bug(適用于所有本地靜態(tài)資源)
- 2022-11-12 C語(yǔ)言楊氏矩陣查找算法實(shí)例講解_C 語(yǔ)言
- 2022-09-03 ahooks控制時(shí)機(jī)的hook實(shí)現(xiàn)方法_React
- 2022-09-10 PyCharm:method?may?be?static問(wèn)題及解決_python
- 2022-05-21 詳解C#枚舉中使用Flags特性_C#教程
- 2022-07-15 Python?print函數(shù):如何將對(duì)象打印輸出_python
- 2023-05-09 python中類的相互調(diào)用的實(shí)踐_python
- 2022-08-04 Go?slice切片使用示例詳解_Golang
- 最近更新
-
- 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概述快速入門(mén)
- 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)程分支