嗨喽! 大家好,我是“流水不争先,争得滔滔不绝”的翀,18双非本科生一枚,正在努力!欢迎大家来交流学习,一起学习数据分析,希望我们一起好好学习,天天向上,目前是小社畜一枚~~

[让我看看]

  • ​​1 常量​​
  • ​​1.1 numpy.nan​​
  • ​​1.2 numpy.inf​​
  • ​​1.3 numpy.pi​​
  • ​​1.4 numpy.e​​
  • ​​2 数据类型​​
  • ​​2.1常见数据类型​​
  • ​​2.2 创建数据类型​​
  • ​​2.3数据类型信息​​
  • ​​3 时间日期和时间增量​​
  • ​​3.1 datetime64 基础​​
  • ​​3.2 datetime64 和 timedelta64 运算​​

1 常量

1.1 numpy.nan

import numpy as np
print(np.nan == np.nan)
print(np.nan != np.nan)

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型

(1)np.nan不是一个空对象,用i is None 判断是False 用np.isnan()判断是True

(2)对某个值判断是否为控制时,只能用np.isnan(i)函数,绝不可能用 i==np.nan()!!!

(3)因为空值不能用判断相等的"=="正确识别

np.nan非空对象,其类型为基本数据类型float

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_02

1.2 numpy.inf

numpy中的inf表示一个无限大的正数

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_03

1.3 numpy.pi

numpy.pi 表示圆周率

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型_04

1.4 numpy.e

numpy.e 表示自然常数

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_05

2 数据类型

2.1常见数据类型

Python 原生的数据类型相对较少, bool、int、float、str等。这在不需要关心数据在计算机中表示的所有方式的应用中是方便的。然而,对于科学计算,通常需要更多的控制。为了加以区分 numpy 在这些类型名称末尾都加了“_”。

下表列举了常用 numpy 基本类型

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型_06

2.2 创建数据类型

numpy 的数值类型实际上是 dtype 对象的实例

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_机器学习_07

每个内建类型都有一个唯一定义它的字符代码,如下:

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_Python_08


itemsize输出array元素的字节数

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_09


Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_python_10


Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型_11


Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_机器学习_12


Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_python_13

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型_14

2.3数据类型信息

Python 的浮点数通常是64位浮点数,几乎等同于 np.float64。

NumPy和Python整数类型的行为在整数溢出方面存在显着差异,与 NumPy 不同,Python 的int 是灵活的。这意味着Python整数可以扩展以容纳任何整数并且不会溢出。

整数类型的机器限制

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_python_15


Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型_16


浮点类型的机器限制。
class finfo(object):
def _init(self, dtype):

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_机器学习_17

3 时间日期和时间增量

3.1 datetime64 基础

在 numpy 中,我们很方便的将字符串转换成时间日期类型 datetime64(datetime 已被 python 包含的日期时间库所占用)。

datatime64是带单位的日期时间类型,其单位如下:

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_python_18


从字符串创建 datetime64 类型时,默认情况下,numpy 会根据字符串自动选择对应的单位

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_19


从字符串创建 datetime64 类型时,可以强制指定使用的单位。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_机器学习_20


由上例可以看出,2019-03 和 2019-03-01 所表示的其实是同一个时间。 事实上,如果两个 datetime64 对象具有不同的单位,它们可能仍然代表相同的时刻。并且从较大的单位(如月份)转换为较小的单位(如天数)是安全的。

从字符串创建 datetime64 数组时,如果单位不统一,则一律转化成其中最小的单位。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_21


使用arange()创建 datetime64 数组,用于生成日期范围

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_机器学习_22

3.2 datetime64 和 timedelta64 运算

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

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_机器学习_23


生成 timedelta64时,要注意年(‘Y’)和月(‘M’)这两个单位无法和其它单位进行运算(一年有几天?一个月有几个小时?这些都是不确定的)。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_24

timedelta64 的运算。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_python_25


numpy.datetime64 与 datetime.datetime 相互转换

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_26


datetime64 的应用

为了允许在只有一周中某些日子有效的上下文中使用日期时间,NumPy包含一组“busday”(工作日)功能。

numpy.busday_offset(dates, offsets, roll=‘raise’, weekmask=‘1111100’, holidays=None, busdaycal=None, out=None) First adjusts the date to fall on a valid day according to the roll rule, then applies offsets to the given dates counted in valid days.
参数roll:{‘raise’, ‘nat’, ‘forward’, ‘following’, ‘backward’, ‘preceding’, ‘modifiedfollowing’, ‘modifiedpreceding’}

‘raise’ means to raise an exception for an invalid day.
‘nat’ means to return a NaT (not-a-time) for an invalid day.
‘forward’ and ‘following’ mean to take the first valid day later in time.
‘backward’ and ‘preceding’ mean to take the first valid day earlier in time.

将指定的偏移量应用于工作日,单位天(‘D’)。计算下一个工作日,如果当前日期为非工作日,默认报错。可以指定 forward 或 backward 规则来避免报错。(一个是向前取第一个有效的工作日,一个是向后取第一个有效的工作日)

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_深度学习_27


可以指定偏移量为 0 来获取当前日期向前或向后最近的工作日,当然,如果当前日期本身就是工作日

要注意!!一开始想不懂以为错了,后来明白forward向前就是向未来看,backward是向过去看返回指定日期是否是工作日。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_Python_28


统计一个 datetime64[D] 数组中的工作日天数。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_数据类型_29


返回两个日期之间的工作日数量。

Numpy【学习礼包】常量、数据类型、时间日期和时间增量、_Python_30