ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

numpy 数据类型和空值

2021-12-31 18:03:19  阅读:190  来源: 互联网

标签:单位 数据类型 空值 print 整型 datetime64 np numpy


numpy支持的数据类型非常精细,但是numpy不支持精确小数。在导入numpy模块时,通常把numpy模块重命名为np:

import numpy as np

一,numpy的数据类型

 numpy支持的数据类型如下表所示:

类型比特位说明
bool_ = bool8 8位 布尔类型
int8 = byte 8位 整型
int16 = short 16位 整型
int32 = intc 32位 整型
int_ = int64 = long 64位 整型
uint8 = ubyte 8位 无符号整型
uint16 = ushort  16位 无符号整型
uint32 = uintc  32位 无符号整型
uint64 = uintp 64位 无符号整型
float16 16位 浮点型
float32 = single 32位 浮点型
float_ = float64 = double 64位 浮点型
str_ = unicode_ = unicode Unicode 字符串  
datetime64 日期时间类型  
timedelta64 表示两个时间之间的间隔

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,浮点数类型

数据类型的信息,可以通过finfo来查看浮点数的类型信息,通过iinfo函数来查看整数的类型信息,

finfo.eps表示1.0和下一个大于1.0的最小的浮点数之间的差异值。

ff16 = np.finfo(np.float16)
print(ff16.bits)  # 16
print(ff16.min)  # -65500.0
print(ff16.max)  # 65500.0
print(ff16.eps)  # 0.000977

2,日期时间类型

datetime64是带单位的,分为日期单位和时间单位,日期单位的级别都大于时间单位。

日期单位是:年(Y),月(M),周(W),天(D),单位级别依次减小,

时间单位是:时(h),分(m),秒(s),毫秒(ms),微妙(us),纳秒(ns),单位级别依次减小,

  • 1秒 = 1000 毫秒(milliseconds)
  • 1毫秒 = 1000 微秒(microseconds

通过字符串来创建日期时间类型,默认情况下,numpy会根据字符串来自动选择日期和时间单位:

a = np.datetime64('2020-03-08 20:00:05')
b = np.datetime64('2020-03-08')

datetime64的单位是级别最小的单位,例如,a 的单位是s,而b的单位是D。

3,时间增量

timedelta64 表示两个 datetime64 之间的差值,timedelta64是带单位的,和相减运算中的两个 datetime64 中的较小的单位保持一致。

t1 = np.datetime64('2020-03-08') - np.datetime64('2020-03-07')

t1 表示两个日期之间的差值,单位是D。

二,np.datetime64 和 datetime.datetime之间的转换

import numpy as np
import datetime

dt = datetime.datetime(year=2020, month=6, day=1, hour=20, minute=5, second=30)
dt64 = np.datetime64(dt, 's')
print(dt64, dt64.dtype)
# 2020-06-01T20:05:30 datetime64[s]

dt2 = dt64.astype(datetime.datetime)
print(dt2, type(dt2))
# 2020-06-01 20:05:30 <class 'datetime.datetime'>

三,numpy的空值

nan表示空值,两个nan是不相等的。

print(np.nan == np.nan)  # False
print(np.nan != np.nan)  # True

 

 

参考文档:

标签:单位,数据类型,空值,print,整型,datetime64,np,numpy
来源: https://www.cnblogs.com/ljhdo/p/15753805.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有