Python-Numpy库的学习

Posted r-sea-l

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-Numpy库的学习相关的知识,希望对你有一定的参考价值。

Numpy是数据科学领域中最基础的Python库,它提供了一种快速高效的数学运算,可以和线性代数等数学知识有效的结合起来。而且Numpy是基于C语言实现的,所以它的运行效率足以和C/Matlab相媲美。

1、Array的创建

import numpy as np

# 第一种创建方式
# list1 = [1, 2, 3, 4]
# array1 = np.array(list1)
# array1
# 创建多维数组
# list2 = [5, 6, 7, 8]
# array2 = np.array([list1,list2])
# array2

# 第二种创建方式
# array3 = np.arange(1, 10, 3)  #np.arange(n, m, p) 从n到m-1间隔为p创建数组
# array3

# 第三种,创建零数组
# array4 = np.zeros(3,3)  #np.zeros(n)  一行n列零数组
# array4
# array5 = np.zeros([4,5])  #np.zeros([m,n]) m行n列零数组
# array5

# 第四种创建单位矩阵
# array6 = np.eye(3)  #np.eye(n) n阶单位矩阵
# array6

2、快速创建Array

import numpy as np

# np.random.randn(n) 创建长度为n,元素类型为float的一维数组
np.random.randn(10) 
# np.random.randint(m,size(a,b)) 创建元素类型为int且大小在0到m-1的a*b多维数组
np.random.randint(10,size=(3,4)) 
# 通过reshape把改变维数
np.random.randint(10,size=(3,4)).reshape(6,2)

3、Array的属性

import numpy as np

# 创建二维数组
array1 = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
array1

# 查看数组的类型
array1.shape

# 查看数组元素的个数
array1.size

# 查看数组元素的类型
array1.dtyp  # 若数组元素的类型不一致,取精确度最高的 

4、Array的访问

import numpy as np

# 创建一维数组
array1 = np.arange(1, 10)
array1
# 访问数组中的元素
array1[2] # index是从0开始 array[n] 访问第n+1位的元素
array1[1:3] # 访问第二位到第四位的元素

# 二维数组
array2 = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
array2
array2[1][0] # 访问第二行第一列的元素
array2[1,0] # 和上述一个意思
 
# 多维数组
array3 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
array3[:2, 1:] #左边指定行,右边指定列。 从第一行到第二行,第二列到最后一列

5、Array常见函数

import numpy as np

#创建数组
a = np.random.randint(10, size=12).reshape(3,4)

# unique()函数
np.unique(a)  # 返回数组中唯一的元素

# sum()函数
sum(a)  # 返回每一列的和
# 具体某一行
sum(a[0])  # 返回第一行元素的和
# 具体某一列
sum(a[:,0])  # 返回第一列元素的和

# max()函数
a.max()  # a中元素最大的
# 某一行某一列最大的元素 和sun()函数类似
max(a[0])   # 第一行最大的元素
max(a[:,0])  # 第一列最大的元素

6、数组运算

import numpy as np

# 创建两个多维数组
array1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
array2 = np.array([[0,1,2],[2,3,0],[4,5,6]])

# 加减法 对应位置相加减
# array1 + array2
# array1 - array2

# 乘法 对应位置相乘
# array1 * array2

# 除法 对应位置相除
# array1 / array2  # 会出现警告 因为除数不能为0

7、矩阵的创建

import numpy as np

# 第一种方式
a = np.mat([[1,2,3],[4,5,6]])

# 第二种方式 与数组联系起来
b = np.mat(np.random.randint(10, size=6).reshape(3,2))

8、矩阵的运算

import numpy as np

# 创建两个矩阵
A = np.mat([[1,2,3],[4,5,6]])
B = np.mat([[7,8,9],[2,4,8]])

# 加减法 和数组的加减法一样
# A + B  
# A - B  # 对应位置相加减

# 乘法 
‘‘‘
直接写 A * B 是肯定不行的!
矩阵相乘的基本法则是前一个矩阵的列数等于后一个矩阵的行数
‘‘‘
# 上述问题可以通过把B转置成3*2的矩阵
B.T  
A * B.T

以上是关于Python-Numpy库的学习的主要内容,如果未能解决你的问题,请参考以下文章

神经网络基本原理简明教程-0-Python-Numpy库的点滴

Python-Numpy库的扩维(维度扩展)操作示例代码积累

详解Python-Numpy库的函数diagonal()并附函数diagonal()与函数diag()的区别

python-Numpy学习之ndimshapedtypeastype的用法

python-numpy

Python-NumPy