Numpy使用详解

Numpy(Numerical Python 的简称)时高性能科学计算和数据分析的基础包,提供了矩阵运算的功能。

相关链接Numpy官方推荐教程

Numpy具有以下几点能力:

  • ndarry——一个具有向量算数运算和复杂广播能力的多位数组对象
  • 用于对数组数据进行快速运算的标准数学函数
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具
  • 非常有用的线性代数,傅立叶变换和随机数操作
  • 用于继承c/c++和Fortran代码的工具

创建Numpy数组

使用numpy.array()可直接导入数组或矩阵

import numpy as np
a = np.array([1,2,3,4,5])
b = np.array([[1,1,1],[2,2,2],[3,3,3]])
print(a)
print(b)
//结果
[1 2 3 4 5]
[[1 1 1]
 [2 2 2]
 [3 3 3]]

获取与创建数组时设置纬度

reshape将当前一位数组设置成对应的m*n的矩阵

a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
a = a.reshape(3,5)
print(a)
//结果
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]]

通过a.shape()可以查看当前矩阵的纬度,返回值是一个元组

tu = a.shape
print(tu)
// 结果
(3, 5)

数组索引、切片、比较

matrix = np.array([[1,2,3],[20,30,40]])
*索引与正常二位数组相同*
print(matrix[0,1])
matrix = np.array([
[5,10,15],
[20,25,30],
[35,40,45]])
*切片与正常二维数组相同*
print(matrix[:,1])
print(matrix[:,0:2])
print(matrix[1:3,:])
print(matrix[1:3,0:2])
*结果*
2
[10 25 40]
[[ 5 10]
 [20 25]
 [35 40]]
[[20 25 30]
 [35 40 45]]
[[20 25]
 [35 40]]
*比较返回的是每一个数组元素比较之后的值,返回的也是一个数组,都是布尔类型*
 z = (matrix[1,:]==25)
print(z)
*结果*
[False  True False]

数组值的替换

值的替换在自然语言处理中很有用,例如我们在处理一个文本数组的时候,有几个数据元素是空,那么我们可以结合判断语句来获得是否为空的一个布尔数组,然后利用这个布尔数组进行元素替换

matrix=np.array([['1','2',''],['3','4','5'],['5','6','']])
m = (matrix[:,2] == '')
matrix[m,2]='0'
print(matrix)
*这里判断第三列中值为空的数据,返回一个bool类型的数组
,再将bool类型的数组当成是数组的下标进行替换数据就可以了,
这里只会替换值为真的时候的值,所以完全不必担心替换不必要的数据*

数据类型转换

初始化时设置数据类型用dtype
astype用于更改数据类型

vector = np.array(['1','2','3'])
vector = vector.astype(float)
print(vector)
*结果*
[1. 2. 3.]

统计计算方法

sum
mean
max
**********
vector.sum()
vector.mean()
vector.max()
**********
6.0    和
2.0   平均
3.0   最大
************
对于矩阵需要设置行或者列
matrix = np.array([[20,10,15],[30,20,14],[30,29,43]])
matrix.sum(axis=1)//每行相加求和
*结果*
array([ 45,  64, 102])

matrix.sum(axis=0)//每列相加求和
*结果*
array([80, 59, 72])

如果你还想了解更多,我想这个入门文档应该足够了

Numpy官方推荐教程

你可能感兴趣的:(Numpy使用详解)