适用于python初学者的Numpy手册-泓源视野

适用于python初学者的Numpy手册

在此博客中,我们将讨论python中的Numpy库,稍后我们还将准备一个笔记本,以后我们可以将其用作手册

什么是Numpy?

Numpy代表“数值Python”,它是用于各种科学计算的python库。它由许多多维数组和一组处理它们的例程组成。通过添加大量高级数学函数,它增加了对矩阵和大型多维数组的额外支持。它由Travis Oliphant于2005年创建。这是一个开源项目,您可以在代码中自由使用它。

在python中,我们有可以满足数组目的的列表,但是列表的问题是它们处理缓慢。另一方面,NumPy数组比List更具优势。它们比列表快得多,因为它们存储在内存中的一个连续位置中。而且,NumPy阵列经过优化可在CPU内核上工作。

您可以在此处找到初学者的熊猫手册

博客中涵盖的概念

  1. 安装和环境设置
  2. 创建数组
  3. 基本功能
  4. 数据类型和转换
  5. 初始化不同类型的数组
  6. 运作方式
  7. 访问和更改特定元素,行,列
  8. 三角函数
  9. 统计
  10. 重塑

安装和环境设置

我们可以简单地使用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中有许多基本功能,但是在本博客中,我们将重点介绍用于识别数组的最具体功能。

  1. ndim
    返回数组维数
  2. shape
    返回数组的当前形状。
  3. dtype
    返回数组的类型
  4. itemssize
    返回数组的大小
  5. nbytes
    返回存储在内存中的总大小
  6. arange
    返回一个具有均匀空格数字
    np.arange(20)的数组:-返回一个具有0到19个数字的数组。
  7. 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,5array.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.0mean:返回数组的平均值np.mean(arr)> 6.0average  :返回数组的平均值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将数组重塑为所有可能的组合。
本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
13

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第8236064 位访客, 您的IP是:[3.93.59.171]