numpy_task01
文章目录
1. 常量
1.1 numpy.nan
空值:numpy.nan
、 numpy.NaN
、 numpy.NAN
- 两个numpy.nan不相等
import numpy as np
print(np.nan==np.nan) # False
-
numpy.isnan(x, *args, **kwargs)
- Test element-wise for NaN and return result as a boolean array
import numpy as np x=np.array([1,2,np.nan,3,4]) y=np.isnan(x) print(y) # [False False True False False] z=np.count_nonzero(y) print(z) # 1 np.count_nonzero(x) #
1.2 numpy.inf
正无穷大:numpy.inf
、numpy.Inf
、numpy.infty
、numpy.Infinity
、numpy.PINF
- numpy.inf 与其他数值的比较
import numpy as np
print(np.inf > 100000) # True
1.3 numpy.pi
圆周率:numpy.pi
1.4 numpy.e
自然常数:numpy.e
2. 数据类型
2.1 常见数据类型
2.2 创建数据类型
import numpy as np
x=np.dtype('b1')
print(x.type)
print(x.itemsize)
x=np.dtype('i1')
print(x.type)
print(x.itemsize)
x=np.dtype('i2')
print(x.type)
print(x.itemsize)
x=np.dtype('i4')
print(x.type)
print(x.itemsize)
x=np.dtype('i8')
print(x.type)
print(x.itemsize)
x=np.dtype('u1')
print(x.type)
print(x.itemsize)
x=np.dtype('u2')
print(x.type)
print(x.itemsize)
x=np.dtype('u4')
print(x.type)
print(x.itemsize)
x=np.dtype('u8')
print(x.type)
print(x.itemsize)
x=np.dtype('f2')
print(x.type)
print(x.itemsize)
x=np.dtype('f4')
print(x.type)
print(x.itemsize)
x=np.dtype('f8')
print(x.type)
print(x.itemsize)
x = np.dtype('S')
print(x.type)
print(x.itemsize)
x = np.dtype('S3')
print(x.type)
print(x.itemsize)
x = np.dtype('U3')
print(x.type)
print(x.itemsize)
3. 时间日期和时间增量
datatime64
日期/时间 单位 | 含义 |
---|---|
Y | 年 |
M | 月 |
W | 周 |
D | 天 |
h | 小时 |
m | 分钟 |
s | 秒 |
ms | 毫秒 |
us | 微妙 |
ns | 纳秒 |
ps | 皮秒 |
fs | 飞秒 |
as | 阿托秒 |
- 默认情况下,numpy根据字符串自动选择对应的单位
import numpy as np
x=np.datatime64('2020-10-20')
print(x,x.dtype)
x=np.datatime64('2020-10-20 21:50')
print(x,x.dtype)
- 强制制定单位
import numpy as np
x=np.datatime64('2020-10','D')
print(x,x.dtype)
x=np.datatime64('2020-10','Y')
print(x,x.dtype)
print(np.datetime64('2020-10') == np.datetime64('2020-10-01'))
# True
# 2020-10 和 2020-10-01 所表示的是同一个时间
print(np.datetime64('2020-10') == np.datetime64('2020-10-02'))
#False
-
从字符串创建 datetime64 数组
单位不统一,则一律转化成其中小的单位
import numpy as np
x = np.array(['2020-03', '2020-03-08', '2020-03-08 20:00'], dtype='datetime64')
print(x, x.dtype)
- arange() 创建datatime64数组
import numpy as np
a = np.arange('2020-08-01', '2020-08-10', dtype=np.datetime64) print(a)
print(a.dtype)
a = np.arange('2020-08-01 20:00', '2020-08-10', dtype=np.datetime64) print(a)
print(a.dtype)
a = np.arange('2020-05', '2020-12', dtype=np.datetime64)
print(a)
print(a.dtype)
3.1. datatime64 & timedelta64运算
a = np.timedelta64(1, 'Y')
b = np.timedelta64(6, 'M')
c = np.timedelta64(1, 'W')
d = np.timedelta64(1, 'D')
e = np.timedelta64(10, 'D')
print(a) # 1 years
print(b) # 6 months
print(a + b) # 18 months
print(a - b) # 6 months
print(2 * a) # 2 years
print(a / b) # 2.0
print(c / d) # 7.0
print(c % e) # 7 days
3.2 datatime64的应用
-
numpy.busday_offset(dates, offsets, roll='raise', weekmask='1111100', holidays=None, busdaycal=None, out=None)
-
numpy.is_busday(dates, weekmask='1111100', holidays=None, busdaycal=None, out=None)
-
numpy.busday_count(begindates, enddates, weekmask='1111100', holidays=[], busdaycal=None, out=None)
4. 数组的创建
numpy 提供的重要的数据结构是 ndarray ,它是 python 中 list 的扩展。
4.1 依据现有数据来创建ndarray
- 通过array()创建
def array(p_object, dtype=None, copy=True, order='K', subok=False, ndmin=0):
- 通过asarray()创建
def asarray(a, dtype=None, order=None):
return array(a, dtype, copy=False, order=order)
- 通过fromfunction()创建
def fromfunction(function, shape, **kwargs):