适用于python初学者的Numpy手册

在此博客中,我们将讨论python中的Numpy库,稍后我们还将准备一个笔记本,以后我们可以将其用作手册。
什么是Numpy?
Numpy代表“数值Python”,它是用于各种科学计算的python库。它由许多多维数组和一组处理它们的例程组成。通过添加大量高级数学函数,它增加了对矩阵和大型多维数组的额外支持。它由Travis Oliphant于2005年创建。这是一个开源项目,您可以在代码中自由使用它。
在python中,我们有可以满足数组目的的列表,但是列表的问题是它们处理缓慢。另一方面,NumPy数组比List更具优势。它们比列表快得多,因为它们存储在内存中的一个连续位置中。而且,NumPy阵列经过优化可在CPU内核上工作。
您可以在此处找到初学者的熊猫手册。
博客中涵盖的概念
- 安装和环境设置
- 创建数组
- 基本功能
- 数据类型和转换
- 初始化不同类型的数组
- 运作方式
- 访问和更改特定元素,行,列
- 三角函数
- 统计
- 重塑
安装和环境设置
我们可以简单地使用Pip安装NumPy。只需打开您的CMD或终端并输入
点安装numpy
现在测试安装是否成功,只需键入python
,然后import numpy
一切正常,就不会看到任何错误。
在此博客中,我们的主要重点是为我们创建一本手册。我们将使用google colab,以便即使通过移动设备也可以轻松访问我们的手册。只需访问Google Colabotary并为您创建一个帐户即可。然后创建一个新的笔记本,并将其命名为Numpy Handbook或您喜欢的其他名称。现在您已经完成所有设置,关注博客,并开始编写代码。
我们首先导入Numpy
将numpy导入为np
创建数组
使用Numpy,我们可以创建一维和多维数组。
-:一维数组:-
arr = np.array([1,2,3,4,5])######## OUTPUT ########## array ([1,2,3,4,5 ])
-:多维数组:-
### 2d数组= np.array([[1,2,3,4,5], [6,7,8,9,10]])### 3d lst1 = [1,2,3,4 ,5] lst2 = [6,7,8,9,10] lst3 = [11,12,13,14,15] array = np.array([[lst1],[lst2],[lst3]])4d,5d,---创建数组,我们只需要以列表的形式添加这些多维。
基本功能
Numpy中有许多基本功能,但是在本博客中,我们将重点介绍用于识别数组的最具体功能。
- ndim
返回数组维数 - shape
返回数组的当前形状。 - dtype
返回数组的类型 - itemssize
返回数组的大小 - nbytes
返回存储在内存中的总大小 - arange
返回一个具有均匀空格数字
np.arange(20)的数组:-返回一个具有0到19个数字的数组。 - argmax
返回数组的最大值
数组= np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])array.ndim > 3 array.shape >(3,1,5)array.dtype > dtype('int64')array.itemsize > 8 array.size > 15 np.arange(8) > array([0,1,2、3、4、5、6、7 ])np.argmax(array) > 14
数据类型和转换
NumPy比python支持更广泛的数字类型。有趣的事实是,就像python中的类型转换一样,我们也可以在NumPy中将数据类型转换为另一种。下面是NumPy中重要数据类型的列表。
bool_:返回True和False int_:默认整数类型(int32或int 64)intc:与int相同C int(int32或int 64)intp:用于索引的整数int8:字节(-128至127)int16:字节(- 32768至32767)int32:字节(-2147483648至2147483647)int64:字节(-9223372036854775808至9223372036854775807)uint8:字节(0至255)uint16:字节(0至65535)uint32:字节(0至4294967295)uint64:字节( 0至18446744073709551615)float_: float float16:一半 精度浮点数:5位至10尾数float32:单精度浮点数:8位至23尾数float64:双 精度浮点数:11位至53尾数complex_:复数128 complex64:复数,由两个32位浮点表示complex128:复数由两个64位浮点数表示
要将数据类型转换为另一种,我们astype
在numpy中提供了一个函数。在函数中作为参数,我们需要传递数据类型。
array = np.array([1,2,3,4,5])array.dtype > dtype ('int64')数组=数组。astype('float32') array.dtype > dtype ('float32')
初始化不同类型的数组
我们可以使用python初始化不同类型的数组,例如数组或零和一或随机数或空。
▶零数组np.zeros((2,3))>数组([[0.,0.,0.], [0.,0.,0.]])▶个1的数组np.ones((2,2,2))> array([[[ [1。,1.],[1.,1.]], [[1.,1.], [1。 ,1.]]])▶随机数数组np.full((2,2),5)> array([[5,5], [5,5]])▶预定义数组形状的数组arr = np.zeros((3,3))np.full_like(arr,4)> array([[ [4。,4.,4 .],[4.,4.,4 。], [4.,4.,4。]])arr = np.zeros((3,3))np.ones_like(arr)> array([[1。,1.,1.], [1.,1.,1.], [1.,1。 ,1.]])▶随机数数组(十进制) np.random.rand(4,2)>数组([[[2,3], [2,3], [2,3], [1,0]])▶随机数数组(整数) np.random.seed(42)##每次相同的结果np.random.randint(5,size =(4,2))> array([[ 3,0 ], [2 ,1], [4、1], [2、0]])▶重复数组arr = np.array([[1,2 ,, [3,4]])r1 = np.repeat(arr,2,axis = 0) ##(PREV_ARRAY,NUM_OF_REPEATION,AXIS)> array( [[1、2], [1、2], [3、4], [3、4]])▶复制数组arr2 = arr1.copy()▶linspace此函数类似于arange()函数。在此功能中,将指定间隔之间均匀间隔的值的数量,而不是步长。numpy.linspace(start,stop,num,endpoint,retstep,dtype)num:要生成的均匀间隔的样本数。默认值-> 50np.linspace(10,20,5,端点= False)>数组([10.,12.,14.,16.,18.])▶logspace此函数返回一个ndarray对象,该对象包含在对数刻度上均匀间隔的数字。标度的起点和终点是基准的索引,通常为10。numpy.logspace(start,stop,num,endpoint,base,dtype)base:日志空间的基准,默认为10np.logspace(1,5,num = 5,base = 2)> array([2.,4.,8.,16.,32.])
运作方式
我们可以对数组执行所有的算术和逻辑运算,例如加法,乘法等。
瞬间学习数据科学!| 数据驱动的投资者
在我以前的职业生涯中,我是一位训练有素的古典钢琴家。记住那些声称可以做到的电视购物……
www.datadriveninvestor.com
-:同一数组中的算术运算:-
arr = np.array([1,2,3,4,5])###加法arr + 2 >数组([ 3,4,5,6,6,7 ])### 减法arr-1 >数组([0,1,2,3,4])### Multipication arr * 2 > array([ 2,4,6,8,10 ])###除法arr / 2 >数组([0.5,1.,1.5,2.,2.5])### Power arr ** 2 >数组([ 1,4,9,16,16,25 ])
-:两个不同数组之间的算术运算:-
arr2 = np.array([5,4,3,2,1])## 1d数组arr = np.array([1,2,3,4,5])###点arr * arr2 >数组([ 5、8、9、8、5 ])arr2 = np.array([[5,4,3,2,1],[2,4,6,8,10]])## 2d数组arr = np.array([[1,2,3, 4,5],[1,3,5,7,9]])###点arr * arr2 >数组([[ 5,8,9,8,5 ], [2,12,30,56,90]])线性代数
访问和更改特定元素,行,列
我们可以使用索引访问和更改特定的元素,行和列。
arr = np.array([[1,2,3,4,5], [2,7,3,9,4], [5,0,3,1,6]])ing访问行arr [0] > array([1、2、3、4、5])ing访问特定元素arr [0] [2] > 3◼更改数组中的特定元素arr [0] [2] = 10 arr [0] [2] > 10◼更改行arr [0] = [10,11,12,13,14] arr [0] > array([10,11,12,13,14 ])◼更改列arr [0] [0] = 21 arr [1] [0] = 22 arr [2] [0] = 23 arr >数组([[ 21,11,12,13,14 ], [22, 7,3,9,4], [23,0,3,1,6]])◼访问在阵列中的每个元件对于i在ARR: 对于j在I: 打印(j)的
三角函数
NumPy中提供了各种三角函数。在此处找到所有功能的列表。让我们看一些重要的例子。
arr = np.array([0,30,45,60,90])◼找到sin np.sin(arr)> array([0.,-0.98803162,0.85090352,-0.30481062,0.89399666])◼找到cos np.cos(arr)> array([1.,0.15425145,0.52532199,-0.95241298,-0.44807362])◼找到正切np.tangent(arr)> array([0.,-6.4053312,1.61977519,0.32004039,-1.99520041])◼的sinh:给定阵列的双曲正弦值双曲余弦值:◼COSH ◼的tanh:双曲黄褐色值np.sinh(ARR)>阵列([0.00000000e + 00,5.34323729e + 12,1.74671355e + 19,+ 5.71003695e 25,6.10201647e + 38])◼ arcsinh:给定阵列的双曲反正弦值◼ arccosh:给定阵列的双曲余弦值◼ arctanh:给定阵列的双曲反正切值np.arcsinh(ARR)>。阵列([0,4.09462222,4.4999331, 4.78756118、5.19298771])◼ ARCSIN:反正弦函数返回给定阵列的反正弦值◼ ARCCOS:反余弦函数返回一个给定阵列的反余弦值◼反正切:反正切函数返回给定阵列的反正切值np.arccos(ARR)◼将deg转换为弧度np.deg2rad(arr)>数组([0.,0.52359878,0.78539816,1.04719755,1.57079633])
统计
NumPy具有许多有用的统计函数,用于从数组中的给定元素中查找最小值,最大值,百分位数标准偏差和方差等。
arr = np.array([[2,4,6],[3,6,9],[4,8,12]])▶ amin:在数组np.amin(arr)> 2中找到最小值▶ amax:在数组np.amax(arr)> 12中找到最大值▶ ptp:返回np轴上的最大值和最小值之差.ptp(arr)> 10▶中位数:返回数组的中位数np.median(arr)> 6.0▶ mean:返回数组的平均值np.mean(arr)> 6.0▶ average :返回数组的平均值np.average(arr)> 6.0▶方差:返回数组的方差np.var(arr)> 9.11111111111111
重塑
它是NumPy中的重要功能之一,也是大多数时间将要使用的一项功能。整形意味着将阵列的形状更改为相似的形状。在NumPy中,我们具有reshape
用于重塑数组的功能。
仅在重新调整形状的阵列也具有相同配置的情况下,重新调整才有效。
例如:
arr(6,3)表示6行3列的总元素= 18可以重塑为
arr(3,6),arr(2,9),arr(9,2)。
arr = np.array([[1,2,3,4],[1,2,3,4]])1️⃣知道形状arr.shape >(2,4)2️⃣相应地重塑arr.reshape(4,2)arr.reshape(8,1)arr.reshape(1,8)
ç ongratulation?在开发自己的个人手册NumPy的。
这是一个检查您的知识的练习
锻炼
[[1,2,3,4,5 ],[6,7,8,9,10],[ 11,12,13,14,15],[16,17,18,19,20],[ 21,22,23,24,25],[26,27,28,29,30]]索引矩阵的不同部分>任务1: [[17,18] [22,23]]>任务2:索引:2 8 14 20>任务3:[[4,5],[19,20],[29,30]>任务4将数组重塑为所有可能的组合。