Datawhale组队学习numpy第1章数据类型及数组创建

it2023-11-05  81

什么是numpy? numpy是python中基于数组对象的科学计算库。 提炼关键字,可以得出numpy以下三大特点: 拥有n维数组对象; 拥有广播功能(后面讲到); 拥有各种科学计算API,任你调用; 如何安装numpy? 因为numpy是一个python库,所以使用python包管理工具pip或者conda都可以安装。 安装python后,打开cmd命令行,输入: import numpy as np np.array([1,2,3]) #一维数组 array([1, 2, 3]) [[0, 1, 2], [3, 4, 5]] #二维数组 [[0, 1, 2], [3, 4, 5]] [[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8], [ 9, 10, 11]]] #三维数组 [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]] 以此类推n维数组。 以下表达式运行的结果分别是什么? print(0 * np.nan) print(np.nan == np.nan) print(np.inf > np.nan) print(np.nan - np.nan) print(0.3 == 3 * 0.1) nan False False nan False 将numpy的datetime64对象转换为datetime的datetime对象。 dt64 = np.datetime64('2020-02-25 22:10:10') 【知识点:时间日期和时间增量】 如何将numpy的datetime64对象转换为datetime的datetime对象? import datetime dt64 = np.datetime64('2020-02-25 22:10:10') dt = dt64.astype(datetime.datetime) print(dt, type(dt)) 2020-02-25 22:10:10 <class 'datetime.datetime'> 给定一系列不连续的日期序列。填充缺失的日期,使其成为连续的日期序列。 dates = np.arange('2020-02-01', '2020-02-10', 2, np.datetime64) 【知识点:时间日期和时间增量、数学函数】 如何填写不规则系列的numpy日期中的缺失日期? dates = np.arange('2020-10-01', '2020-10-10', 2, np.datetime64) print(dates) # ['2020-02-01' '2020-02-03' '2020-02-05' '2020-02-07' '2020-02-09'] out = [] for date, d in zip(dates, np.diff(dates)): out.extend(np.arange(date, date + d)) fillin = np.array(out) output = np.hstack([fillin, dates[-1]]) print(output) ['2020-10-01' '2020-10-03' '2020-10-05' '2020-10-07' '2020-10-09'] ['2020-10-01' '2020-10-02' '2020-10-03' '2020-10-04' '2020-10-05' '2020-10-06' '2020-10-07' '2020-10-08' '2020-10-09'] 如何得到昨天,今天,明天的的日期 【知识点:时间日期】 (提示: np.datetime64, np.timedelta64) yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D') today = np.datetime64('today', 'D') tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D') print ("Yesterday is " + str(yesterday)) print ("Today is " + str(today)) print ("Tomorrow is "+ str(tomorrow)) Yesterday is 2020-10-19 Today is 2020-10-20 Tomorrow is 2020-10-21 创建从0到9的一维数字数组。 【知识点:数组的创建】 如何创建一维数组? arr = np.full([3, 3], True, dtype=np.bool) arr array([[ True, True, True], [ True, True, True], [ True, True, True]]) Z = np.zeros(10) Z[4] = 1 Z array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.]) Z = np.arange(10,50) Z array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]) Z = np.random.random((3,3,3)) Z array([[[0.58975752, 0.36880841, 0.86640695], [0.73045766, 0.83352645, 0.87464867], [0.34377583, 0.76675101, 0.70832659]], [[0.05321132, 0.24235274, 0.99574699], [0.07691529, 0.56842261, 0.50275675], [0.81253279, 0.35894042, 0.65485902]], [[0.47219338, 0.78056415, 0.62234288], [0.37120171, 0.64616385, 0.01597434], [0.28351658, 0.4924925 , 0.80099443]]]) Z = np.ones((10,10)) Z[1:-1,1:-1] = 0 Z array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 0., 0., 0., 0., 0., 0., 0., 0., 1.], [1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]]) start = 5 step = 3 length = 10 a = np.arange(start, start + step * length, step) print(a) [ 5 8 11 14 17 20 23 26 29 32]
最新回复(0)