numpy基础用法-学习笔记-task01

1.空值的表示

nan=NaN=NAN

注意:两个空值是不相等的

2.np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

作用:创建一个数组

3.np.isnan(x, *args, **kwargs)

作用:Test element-wise for NaN and return result as a boolean array.

4.np.count_nonzero(a, axis=None, *, keepdims=False)

作用:用于统计数组中非零元素的个数

5.inf=Inf=infty=Infty=PINF表示无穷大

6.np.pi表示圆周率

7.np.e表示自然数

8.numpy中常见的数据类型

9.创建数据类型

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

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

10.数据类型信息。

Python 的浮点数通常是64位浮点数,几乎等同于 np.float64 。 NumPy和Python整数类型的行为在整数溢出方面存在显着差异,与 NumPy 不同,Python 的 int 是灵活的。这意味着Python整数可以扩展以容纳任何整数并且不会溢出。

11.np.iinfo。

np.iinfo类型)整数类型的机器限制。

参量:

        int_type整数类型,dtype或实例

        获取有关信息的整数数据类型的种类

min:最小值

max:最大值

bits:比特数

1字节=8比特

12.datetime64基础。

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

注意:

        1. 1秒 = 1000 毫秒(milliseconds)

        2. 1毫秒 = 1000 微秒(microseconds)

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

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

由上例可以看出,2019-03 和 2019-03-01 所表示的其实是同一个时间。

事实上,如果两个 datetime64 对象具有不同的单位,它们可能仍然代表相同的时刻。并且从较大的单位(如月份)转换为较小的单位(如天 数)是安全的。

13.datetime64 和 timedelta64 运算。

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

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

timedelta64 的运算

numpy.datetime64 与 datetime.datetime 相互转换

# astype用来转换数据类型
float_arr = arr.astype(np.float64)
# dtype用来查看数据类型
float_arr.dtype
# 将浮点数转换为整数,小数部分会被截断
arr2 = np.array([1.1, 2.2, 3.3, 4.4, 5.3221])
print(arr2)
arr3 = arr2.astype(np.int32)
print(arr3)
[ 1.1     2.2     3.3     4.4     5.3221]
[1 2 3 4 5]

14.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'}

1) 'raise' means to raise an exception for an invalid day.

2)'nat' means to return a NaT (not-a-time) for an invalid day.

3)'forward' and 'following' mean to take the first valid day later in time.

4)'backward' and 'preceding' mean to take the first valid day earlier in time

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

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

15.判断指定日期是否是工作日。

numpy.is_busday(dates, weekmask='1111100', holidays=None, busdaycal=None, out=None)

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

17.自定义周掩码值,即指定一周中哪些星期是工作日。

numpy.busday_count(begindates, enddates, weekmask='1111100', holidays=[], busdaycal=None, out=None)

Counts the number of valid days between begindates and enddates , not including the day of enddates

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

19.数组的创建

numpy 提供的最重要的数据结构是 ndarray ,它是 python 中 list 的扩展。

依据现有数据来创建 ndarray

1)def array(p_object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

2)通过asarray()函数进行创建

array() 和 asarray() 都可以将结构数据转化为 ndarray,但是 array() 和 asarray() 主要区别就是当数据源是ndarray 时, array() 仍 然会 copy 出一个副本,占用新的内存,但不改变 dtype 时 asarray() 不会。

def asarray(a, dtype=None, order=None):

    return array(a, dtype, copy=False, order=order)

3)通过fromfunction()函数进行创建

def fromfunction(function, shape, **kwargs):

【例】通过在每个坐标上执行一个函数来构造数组。

20.依据 ones 和 zeros 填充方式

在机器学习任务中经常做的一件事就是初始化参数,需要用常数值或者随机值来创建一个固定大小的矩阵

(a)零数组

1. zeros() 函数:返回给定形状和类型的零数组。

2. zeros_like() 函数:返回与给定数组形状和类型相同的零数组。

(b)1数组

1. ones() 函数:返回给定形状和类型的1数组。

2. ones_like() 函数:返回与给定数组形状和类型相同的1数组。

(c)空数组

1. empty() 函数:返回一个空数组,数组元素为随机数。

2. empty_like 函数:返回与给定数组具有相同形状和类型的新数组。

(d)单位数组

1. eye() 函数:返回一个对角线上为1,其它地方为零的单位数组。

2. identity() 函数:返回一个方的单位数组。

(e)对角数组

1. diag() 函数:提取对角线或构造对角数组。

(f)常数数组

1. full() 函数:返回一个常数数组。

2. full_like() 函数:返回与给定数组具有相同形状和类型的常数数组。

def full(shape, fill_value, dtype=None, order='C'):

def full_like(a, fill_value, dtype=None, order='K', subok=True, shape=None):

21.利用数值范围来创建ndarray

1) arange() 函数:返回给定间隔内的均匀间隔的值。

2) linspace() 函数:返回指定间隔内的等间隔数字。

3) logspace() 函数:返回数以对数刻度均匀分布。

4) numpy.random.rand() 返回一个由[0,1)内的随机数组成的数组。

def arange([start,] stop[, step,], dtype=None):

def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0):

def logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0):

def rand(d0, d1, ..., dn):

22.结构数组的创建

结构数组,首先需要定义结构,然后利用 np.array() 来创建数组,其参数 dtype 为定义的结构。

(a)利用字典来定义结构

(b)利用包含多个元组的列表来定义结构

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值