• 谈谈Python中的数学扩展包NumPy的用法
  • 发布于 2个月前
  • 214 热度
    0 评论
  • SLAM
  • 1 粉丝 7 篇博客
  •   

Python的数据科学以分析为主。大量的扩展包是 Python 的一大特色,包括各种适用于数据分析的例程和函数。有了这些扩展包,数据科学家们可以不用重复造轮子,节省了很多时间。其中一个重要的数学扩展包就是 NumPy。NumPy 是一个基础数学包,以其高效的多维数组函数而闻名,适用于线性代数,傅立叶变换,逻辑运算等。
本文从 NumPy 最基础的知识切入,包括 NumPy 里面的函数,如何创建 NumPy 数组,数组的索引、切片等,非常适合初学者。
认识NumPy
安装NumPy
如果您用 conda 管理安装的扩展包,请输入:
conda install numpy
如果您用 pip 管理安装的扩展包,请输入:
pip install numpy
新建一个 Jupyter notebook,导入 NumPy 扩展包

Import numpy as np



基础操作
创建列表(一维数组):

array1 = np.array ( [ 1, 2, 3, 4, 5, 6 ] )

创建高维数组:

array2 = np.array ( [ [ 1, 2, 3 ] [ 4, 5, 6 ] ] )

多位数组形状:

print ( array2.shape )  # Prints ( 2, 3 )

修改数组中的元素:

array1 [ 0 ] = 9
print ( array1 )  # Prints “ [ 9, 2, 3, 4, 5, 6 ] ”

使用 NumPy 的 arrange() 函数创建 NumPy 数组

array1 = np.arange ( 0, 10 )  # This generates index value from 0 to 1

使用 NumPy 的函数生成单位数组:

my_matrx = np . eye( 44 )  # here 4 is the number of columns/rows

生成随机数
利用函数 rand() , randn() ,或者 randint(),我们可以创建一个由随机数组成的数组。
例如,如果想生成一组包含六个元素的数组,每个元素都是从 0 到 6 平均分布的随机数,我们可以这样

my_rand = np.random.rand (6)

NumPy的运算

array1 = np.arange (1, 12)
array1 * array1
array1 – array1
array1 + array1
array1 / array1

作用于每个元素的函数

np.sqrt (array1)  # Returns square root
np.exp (array1)   # Returns the exponential
np.log (array1)    # Returns logarithm
np.std (array1)    # Returns standard deviation

索引

array1 [ 2 ]  # Prints 3
array2 [ 1, 1 ] # Prints 5
array2 [ 0, : ]  # array ( [ 1, 2, 3 ] ); row 1

切片

array1 ( [ 1 : 3 ] )  # Prints array ( [ 2, 3] )
array1 ( [ 1 : 3 ] ) = [ -2, -3 ]  # Prints array ( [ 1, -2, -3, 4, 5, 6 ] )
array1 [ : : ]   # array ( [ 1, -2, -3, 4, 5, 6 ] ); lower, upper, step all take the default values
array1 [ : 3 ]  # array ( [ 1, -2, -3 ] ); first three elements
array [ : : 2 ]  # array ( [ 1, -3, 5 ] ); here the step is 2

如果对数组进行切片,需要对数组的每一维都说明切片的索引。

如果把每次增加的索引数目设为负数,遍历的方向则为从后到前:

array1 [ -3 : ] # Prints array ( [4, 5, 6 ] ); the last three numbers

导入/导出文件

np.loadtxt (file.txt)   # imports from a text file
np.savetxt (‘file.txt’,arr,delimiter= ’  ’)   #writes to a text file

结语
除了 NumPy ,Python 还有一些含有类似函数的扩展包,如果有兴趣可以广泛涉猎,互相比较,找出最适合您当前任务的扩展包。

用户评论