Numpy1

it2023-11-13  95

1  什么是numpy?¶xxxxxxxxxx ​numpy·是python中基于数组对象的科学计算库。 提炼关键字,可以得出numpy以下三大特点: 拥有n维数组对象; 拥有广播功能(后面讲到); 拥有各种科学计算API,任你调用numpy·是python中基于数组对象的科学计算库。 提炼关键字,可以得出numpy以下三大特点: 拥有n维数组对象; 拥有广播功能(后面讲到); 拥有各种科学计算API,任你调用 ### **如何安装numpy?**2  如何安装numpy?¶xxxxxxxxxx pip install numpypip install numpy ### **什么是n维数组对象?**3  什么是n维数组对象?¶xxxxxxxxxx n维数组(ndarray)对象,是一系列同类数据的集合,可以进行索引、切片、迭代操作。 numpy中可以使用array函数创建数组n维数组(ndarray)对象,是一系列同类数据的集合,可以进行索引、切片、迭代操作。 numpy中可以使用array函数创建数组In [2]: import numpy as npa = np.array([1,2,3]). . .In [3]:a type(a)Out[3]:numpy.ndarray. . . ### **如何区分一维、二维、多维?**4  如何区分一维、二维、多维?¶xxxxxxxxxx 判断一个数组是几维,主要是看它有几个轴(axis)。一个轴表示一维数组,两个轴表示二维数组,以此类推。每个轴都代表一个一维数组。比如说,二维数组第一个轴里的每个元素都是一个一维数组,也就是第二个轴。判断一个数组是几维,主要是看它有几个轴(axis)。 一个轴表示一维数组,两个轴表示二维数组,以此类推。 每个轴都代表一个一维数组。 比如说,二维数组第一个轴里的每个元素都是一个一维数组,也就是第二个轴。 ### **以下表达式运行的结果分别是什么?**​(提示: NaN = not a number, inf = infinity)​0 * np.nan​np.nan == np.nan​np.inf > np.nan​np.nan - np.nan​0.3 == 3 * 0.15  以下表达式运行的结果分别是什么?¶(提示: NaN = not a number, inf = infinity)0 * np.nannp.nan == np.nannp.inf > np.nannp.nan - np.nan0.3 == 3 * 0.1In [4]: 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对象?6  将numpy的datetime64对象转换为datetime的datetime对象。¶dt64 = np.datetime64(‘2020-02-25 22:10:10’)【知识点:时间日期和时间增量】如何将numpy的datetime64对象转换为datetime的datetime对象?In [5]: import numpy as npimport 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日期中的缺失日期?7  给定一系列不连续的日期序列。填充缺失的日期,使其成为连续的日期序列。¶dates = np.arange(‘2020-02-01’, ‘2020-02-10’, 2, np.datetime64)【知识点:时间日期和时间增量、数学函数】如何填写不规则系列的numpy日期中的缺失日期?In [11]:put import numpy as np​dates = np.arange(‘2020-02-01’, ‘2020-02-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-02-01’ ‘2020-02-03’ ‘2020-02-05’ ‘2020-02-07’ ‘2020-02-09’] [‘2020-02-01’ ‘2020-02-02’ ‘2020-02-03’ ‘2020-02-04’ ‘2020-02-05’ ‘2020-02-06’ ‘2020-02-07’ ‘2020-02-08’ ‘2020-02-09’] . . .In [12]:  np.array(out)Out[12]:array([‘2020-02-01’, ‘2020-02-02’, ‘2020-02-03’, ‘2020-02-04’, ‘2020-02-05’, ‘2020-02-06’, ‘2020-02-07’, ‘2020-02-08’], dtype=‘datetime64[D]’). . . ### 如何得到昨天,今天,明天的的日期​【知识点:时间日期】- (提示: np.datetime64, np.timedelta64)8  如何得到昨天,今天,明天的的日期¶【知识点:时间日期】(提示: np.datetime64, np.timedelta64)In [13]: 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的一维数字数组。**​【知识点:数组的创建】- 如何创建一维数组?9  创建从0到9的一维数字数组。¶【知识点:数组的创建】如何创建一维数组?In [14]: import numpy as np​arr = np.arange(10)print(arr)[0 1 2 3 4 5 6 7 8 9] . . . ### **创建一个元素全为True的 3×3 数组。**​【知识点:数组的创建】- 如何创建一个布尔数组?10  创建一个元素全为True的 3×3 数组。¶【知识点:数组的创建】如何创建一个布尔数组?In [15]: arr = np.full([3, 3], True, dtype=np.bool)print(arr)[[ True True True] [ True True True] [ True True True]] . . . ### 创建一个长度为10并且除了第五个值为1的空向量​【知识点:数组的创建】​- (提示: array[4])11  创建一个长度为10并且除了第五个值为1的空向量¶【知识点:数组的创建】(提示: array[4])In [16]: Z = np.zeros(10)Z[4] = 1print(Z)[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.] . . . ### 创建一个值域范围从10到49的向量​【知识点:创建数组】​- (提示: np.arange)12  创建一个值域范围从10到49的向量¶【知识点:创建数组】(提示: np.arange)In [17]: Z = np.arange(10,50)print(Z)[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] . . . ### 创建一个 3x3x3的随机数组​【知识点:创建数组】​(提示: np.random.random)13  创建一个 3x3x3的随机数组¶【知识点:创建数组】(提示: np.random.random)In [18]: Z = np.random.random((3,3,3))print(Z)[[[0.96709993 0.40850178 0.42651647] [0.30383303 0.37276787 0.97575121] [0.68055716 0.78948961 0.06627876]]

[[0.48440494 0.02592535 0.76618371] [0.8737599 0.24848035 0.96541715] [0.30300352 0.59897462 0.91628386]]

[[0.24747431 0.06996505 0.2389474 ] [0.10611744 0.232145 0.01074539] [0.00844526 0.1748045 0.77032095]]] . . . ### 创建一个二维数组,其中边界值为1,其余值为0​【知识点:二维数组的创建】​- (提示: array[1:-1, 1:-1])14  创建一个二维数组,其中边界值为1,其余值为0¶【知识点:二维数组的创建】(提示: array[1:-1, 1:-1])In [19]: Z = np.ones((10,10))Z[1:-1,1:-1] = 0print(Z)[[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.]] . . . ### **创建长度为10的numpy数组,从5开始,在连续的数字之间的步长为3。**​【知识点:数组的创建与属性】- 如何在给定起始点、长度和步骤的情况下创建一个numpy数组序列?15  创建长度为10的numpy数组,从5开始,在连续的数字之间的步长为3。¶【知识点:数组的创建与属性】如何在给定起始点、长度和步骤的情况下创建一个numpy数组序列?In [20]: start = 5step = 3length = 10a = np.arange(start, start + step * length, step)print(a) # [ 5 8 11 14 17 20 23 26 29 32][ 5 8 11 14 17 20 23 26 29 32] . . . ### **将本地图像导入并将其转换为numpy数组。**​【知识点:数组的创建与属性】- 如何将图像转换为numpy数组?16  将本地图像导入并将其转换为numpy数组。¶【知识点:数组的创建与属性】如何将图像转换为numpy数组?In [21]: from PIL import Image​img1 = Image.open(‘test.jpg’)a = np.array(img1)​print(a.shape, a.dtype)# (959, 959, 3) uint8(959, 959, 3) uint8

最新回复(0)