網站首頁 編程語言 正文
numpy強制類型轉換
今天用numpy遇到一個關于類型轉換的問題,
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]
可以發現A[0]=3.2,被強制轉換成整型3了。發生的原因是A的類型是np.int,賦值浮點數,會自動轉為整型。
這樣的問題一旦出現很難發現,在寫成程序時要提前想好要用的np類型。
補充,兩個整型np.array做運算時,會根據運算自動轉換類型。
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類型強制轉換api
有時候我們從文件讀取的numpy類型就不是我們想要的,需要強制轉換
A = np.array([1,2,3,4,5,6,7,8,9]) ?
A.dtype = 'float' ? # 不能為dtype賦予類型,數據會出錯
A.astype('float') ?# 正確做法
numpy數據類型轉換astype,dtype
1.查看數據類型
In [11]: arr = np.array([1,2,3,4,5])
In [12]: arr
Out[12]: array([1, 2, 3, 4, 5])
// 該命令查看數據類型
In [13]: arr.dtype
Out[13]: dtype('int64')
In [14]: float_arr = arr.astype(np.float64)
// 該命令查看數據類型
In [15]: float_arr.dtype
Out[15]: dtype('float64')
2.轉換數據類型
// 如果將浮點數轉換為整數,則小數部分會被截斷
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])
// 查看當前數據類型
In [9]: arr2.dtype
Out[9]: dtype('float64')
// 轉換數據類型 ?float -> int
In [10]: arr2.astype(np.int32)
Out[10]: array([1, 2, 3, 4, 5], dtype=int32)
3.字符串數組轉換為數值型
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')
// 此處寫的是float 而不是np.float64, Numpy很聰明,會將python類型映射到等價的dtype上
In [6]: numeric_strings.astype(float)
Out[6]: array([ 1.2, 2.3, 3.2141])
原文鏈接:https://blog.csdn.net/springtostring/article/details/118185716
相關推薦
- 2022-05-16 .Net?MVC將Controller數據傳遞到View_實用技巧
- 2023-02-14 Python中如何創建多線程?_python
- 2022-07-26 用3dmax做折扇的思路方法與步驟
- 2022-04-12 python入門之scrapy框架中Request對象和Response對象的介紹_python
- 2022-08-30 C語言淺析函數的用法_C 語言
- 2022-08-06 Python?pandas庫中isnull函數使用方法_python
- 2021-12-01 Linux五步構建內核樹_Linux
- 2023-01-29 python?index()?與?rindex()?方法的使用示例詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支