Python Numpy基础教程

本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x

什么是Numpy

Numpy = Numerical + Python,它是Python中科学计算的核心库,可以高效的处理多维数组的计算。并且,因为它的许多底层函数是用C语言编写的,所以运算速度敲快。

基础知识

ndarray

NumPy的主要对象是同类型的多维数组ndarray。它是一个通用的同构数据多维容器,所有的元素必须是相同类型的,并通过正整数元组索引。利用该对象可以对整块数据执行一些数学运算,语法和标量元素之间的运算一样。在NumPy中,维度称为轴,轴的数目为rank。

介绍一下ndarray常用的属性:

  1. ndarray.shape:表示各个维度中数组的大小,是一个整数的元组
  2. ndarray.dtype:描述数组中元素类型的对象
  3. ndarray.ndim:数组中轴的个数
  4. ndarray.size:数组元素的总数
  5. ndarray.itemsize:数组中每个元素的字节大小

创建数组

创建数组通常有5种方式:

1. 由Python结构(list, tuple等)转换

创建数组最简单的办法就是使用array对象,它可以接受任何序列型的对象,然后产生一个新的含有传入数据的numpy数组(ndarray)。
举个最简单的例子:

import numpy as np

a = np.array([1, 2, 3])
print(a)
print(a.dtype)
print(a.shape)

2. 使用Numpy原生数组创建(arange, ones,zeros等)

如:

b = np.zeros(10)
c = np.ones((1, 2))

3. 从磁盘读取数组

使用np.load方法读取数据。

4. 使用字符串或缓冲区从原始字节创建数组

5. 使用特殊库函数(random等)

索引和切片

基础操作

一维数组中的索引表面看起来和Python list的功能差不多。

对于切片而言,当你将一个标量值赋值给一个切片时,该值会自动传播到整个选区,跟Python list最重要的区别在于:Numpy中数组的切片作用的是原始数据的视图,也就是数据没有被复制,所有的修改都会直接作用到源数据。这是因为,Numpy设计之初就是为了处理大

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 介绍 NumPy是一个开源的Python科学计算库,它主要用于处理多维数组、矩阵运算以及各种数学函数的实现等。NumPyPython科学计算的基础库,因此熟练掌握NumPy的使用对于Python科学计算的学习至关重要。 2. 安装 NumPyPython的一个标准的第三方库,因此可以通过pip命令进行安装。在命令行中输入以下命令即可安装NumPy: ``` pip install numpy ``` 3. 创建数组 使用NumPy创建数组非常简单。以下是一些常见的创建数组的方法: ```python import numpy as np # 创建一维数组 a = np.array([1, 2, 3]) print(a) # [1 2 3] # 创建二维数组 b = np.array([[1, 2, 3], [4, 5, 6]]) print(b) # [[1 2 3] # [4 5 6]] # 创建全0数组 c = np.zeros((2, 3)) print(c) # [[0. 0. 0.] # [0. 0. 0.]] # 创建全1数组 d = np.ones((2, 3)) print(d) # [[1. 1. 1.] # [1. 1. 1.]] # 创建随机数组 e = np.random.rand(2, 3) print(e) # [[0.99167884 0.68710683 0.38981111] # [0.28253149 0.34643884 0.26505375]] ``` 4. 数组运算 NumPy支持对数组进行各种数学运算,例如加、减、乘、除等。以下是一些常见的数组运算: ```python import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # 加法 c = a + b print(c) # [5 7 9] # 减法 d = a - b print(d) # [-3 -3 -3] # 乘法 e = a * b print(e) # [ 4 10 18] # 除法 f = a / b print(f) # [0.25 0.4 0.5 ] ``` 5. 数组切片 NumPy支持对数组进行切片操作,以便获取数组的某些部分。以下是一些常见的数组切片操作: ```python import numpy as np a = np.array([1, 2, 3, 4, 5]) # 获取第二个元素 print(a[1]) # 2 # 获取第二个到第四个元素 print(a[1:4]) # [2 3 4] # 获取倒数第二个元素 print(a[-2]) # 4 # 获取倒数第二个到倒数第四个元素 print(a[-2:-5:-1]) # [4 3 2] ``` 6. 数组形状 NumPy支持对数组的形状进行修改,例如改变数组的维度、大小等。以下是一些常见的数组形状操作: ```python import numpy as np # 创建二维数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 获取数组形状 print(a.shape) # (2, 3) # 改变数组形状 b = a.reshape(3, 2) print(b) # [[1 2] # [3 4] # [5 6]] # 展平数组 c = a.flatten() print(c) # [1 2 3 4 5 6] ``` 7. 数组统计 NumPy支持对数组进行各种统计操作,例如求和、平均值、方差等。以下是一些常见的数组统计操作: ```python import numpy as np # 创建二维数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 求和 print(np.sum(a)) # 21 # 求每列的和 print(np.sum(a, axis=0)) # [5 7 9] # 求每行的和 print(np.sum(a, axis=1)) # [ 6 15] # 求平均值 print(np.mean(a)) # 3.5 # 求方差 print(np.var(a)) # 2.9166666666666665 ``` 8. 广播 在NumPy中,两个形状不同的数组之间可以进行计算,这个过程称为广播(broadcasting)。广播是一种非常方便的数组操作,它可以避免使用循环进行计算。以下是一个广播的例子: ```python import numpy as np # 创建一维数组 a = np.array([1, 2, 3]) # 创建二维数组 b = np.array([[1, 2, 3], [4, 5, 6]]) # 对两个数组进行加法运算 c = a + b print(c) # [[2 4 6] # [5 7 9]] ``` 在上面的例子中,我们对一个一维数组a和一个二维数组b进行了加法运算。由于两个数组的形状不同,NumPy会自动地将a数组进行广播,使其形状与b数组相同,然后再进行加法运算。 9. 总结 NumPyPython科学计算的基础库,它提供了丰富的数组操作、数学函数实现等功能。在学习Python科学计算时,熟练掌握NumPy的使用是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值