Pythone库的使用(numpy)

目录

Numpy介绍

Numpy Ndarray对象 

数据类型对象dtype

创建数组

Numpy从已有的数组创建数组

Numpy从数值范围创建数组

Numpy切片和索引

Numpy迭代数组

数组操作

NumPy字符串函数

Numpy数学函数

Numpy算数函数

Numpy统计函数

Numpy排序、条件筛选函数

Numpy矩阵库(Matrix)


Numpy介绍

Numpy是一个运行速度非常快的数学库,主要用于数组计算。

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

SciPy 是一个开源的 Python 算法库和数学工具包。

SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

Numpy Ndarray对象 

创建ndarray对象只需要调用array函数即可:

numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)

object:数组或嵌套的数列

dtype:数组元素的数据类型

copy:对象是否需要复制

order:创建数组的样式

subok:默认返回一个与基类型一致的数组

ndmin:指定生成数组的最小维度

import numpy as np
a = np.array([[1,2],[3,4]])
print (a)
b = np.array([1,2,3,4],ndmin=2)
print (b)

输出:[ [1 2]

             [3 4] ]

           [[1 2 3 4]]

数据类型对象dtype

numpy的数值类型实际上是dtype对象的实例

import numpy as np
dt = np.dtype([('age',np.int8)])
print(dt)
a = np.array([(10,),(20,),(30,)], dtype = dt)
print(a)
print(a['age'])

输出:[('age','i1')]

           [(10,)(20,)(30,)]

           [10 20 30]

创建数组

numpy.empty    创建一个指定形状(shape),数据类型(dtype)且未初始化的数组

numpy.zeros     创建指定大小的数组,数组元素以0来填充

numpy.ones       创建指定形状的数组,数组元素以1来填充

Numpy从已有的数组创建数组

numpy.asarry(a,dtype = None,order = None)

numpy.frombuffer用于实现动态数组,接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象:

numpy.frombuffer(buffer,dtype = float,cout = -1,offset = 0)

numpy.fromiter 方法从可迭代对象中建立 ndarray 对象,返回一维数组:

numpy.fromiter(iterable, dtype, count=-1)

Numpy从数值范围创建数组

1.numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,start为起始值默认为0,stop为终止值(不包含),步长默认为1,格式如下:

numpy.arange(start, stop, step, dtype)
import numpy as np
x = np.arange(10,20,2)  
print (x)

输出:[10  12  14  16  18]

2.numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

3.numpy.logspace 函数用于创建一个于等比数列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
import numpy as np
a = np.logspace(0,9,10,base=2)
print (a)

输出:[1.  2.  4.  8.  16.  32.  64.  128.  256.  512.]

Numpy切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

import numpy as np
a = np.arange(10)
s = slice(2,7,2)  #从索引2开始到索引7停止,间隔为2
print(a[s])
b = a[2:7:2]     #分隔符 start:stop:step
print(b)
c = a[5]
print(c)

输出:[2  4  6]

           [2  4  6]

           5

Numpy迭代数组

numpy.nditer 访问一个或多个数组元素。

控制遍历顺序:

np.nditer(a,order='F')是列优先,np.nditer(a,order='C')是行优先。

import numpy as np
a=np.arange(6).reshape(2,3)
for x in np.nditer(a)
    print (x, end = ",")

输出:0,1,2,3,4,5

数组操作

1.修改数组的形状

numpy.reshape(arr, newshape, order='C')

numpy.ndarray.flat 是一个数组元素迭代器,对数组中每个元素都进行处理,可以使用flat属性。

numpy.ndarray.flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组。

numpy.ravel 展平数组元素,顺序一般为C风格,修改会影响原始数组。

2.翻转数组

numpy,transpose 用于对换数组的维度,类似numpy.ndarry.T。

3.分割数组

numpy.split函数沿特定的轴将数组分割为子数组。

4.数组元素的添加与删除

numpy.resize 函数返回指定大小的新数组。如果新数组大小大于原始大小,则包含原始数组中的元素的副本。

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.resize(a, (3,2))
print(b)
c = np.resize(a,(3,3))
# 要注意 a 的第一行在 b 中重复出现,因为尺寸变大了
print (c)

输出:[ [1 2 ]

             [3 4 ]

             [5 6 ] ]

           [ [1 2 3 ]

             [4 5 6 ]

             [1 2 3 ] ]

import numpy as np
a = np.array([1,2,3],[4,5,6])
print(np.append(a,[7,8,9]),axis = 0)
print(np.append(a,[[5,5,5],[7,8,9]],axis=1))

输出:[[1 2 3]

            [4 5 6]

            [7 8 9]]

           [[1 2 3 5 5 5]

            [4 5 6 7 8 9]]

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
print ('未传递 Axis 参数。 在删除之前输入数组会被展开。')
print (np.insert(a,3,[11,12]))
print ('传递了 Axis 参数。 会广播值数组来配输入数组。')
print ('沿轴 0 广播:')
print (np.insert(a,1,[11],axis = 0))
print ('沿轴 1 广播:')
print (np.insert(a,1,11,axis = 1))

未传递Axis参数。在删除之前数组会被展开。

[1 2 3 11 12 4 5 6]

传递了Axis参数。会广播数组来配输入数组。

沿轴0广播:

[[1    2]

 [11 11]

 [3    4 ]

 [5    6]]

沿轴1广播:

[[1  11  2]

 [3  11  4]

 [5  11  6]]

NumPy字符串函数

numpy.char.add() 函数依次对两个数组的元素进行字符串连接。

numpy.char.multiply() 函数执行多重连接。

numpy.char.center() 函数用于将字符串居中,并使用指定字符在左侧和右侧进行填充。

numpy.char.capitalize() 函数将字符串的第一个字母转换为大写。

numpy.char.title() 函数将字符串的每个单词的第一个字母转换为大写。

numpy.char.lower() 函数对数组的每个元素转换为小写。它对每个元素调用 str.lower。

numpy.char.upper() 函数对数组的每个元素转换为大写。它对每个元素调用 str.upper。

numpy.char.split() 通过指定分隔符对字符串进行分割,并返回数组。默认情况下,分隔符为空格。

numpy.char.splitlines() 函数以换行符作为分隔符来分割字符串,并返回数组。

numpy.char.strip() 函数用于移除开头或结尾处的特定字符。

numpy.char.join() 函数通过指定分隔符来连接数组中的元素或字符串。

numpy.char.replace() 函数使用新字符串替换字符串中的所有子字符串。

numpy.char.encode() 函数对数组中的每个元素调用 str.encode 函数。 默认编码是 utf-8,可以使用标准 Python 库中的编解码器。

numpy.char.decode() 函数对编码的元素进行 str.decode() 解码。

Numpy数学函数

numpy.around() 函数返回指定数字的四舍五入值。

numpy.floor()  向下取整。

numpy.ceil()  向上取整。

Numpy算数函数

NumPy 算术函数包含简单的加减乘除: add()subtract()multiply() 和 divide()

numpy.reciprocal() 函数返回参数逐元素的倒数。

numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

numpy.mod() 计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。

Numpy统计函数

numpy.amin() 用于计算数组中的元素沿指定轴的最小值。

numpy.amax() 用于计算数组中的元素沿指定轴的最大值。

numpy.ptp() 函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。

numpy.percentile()百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。

numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

numpy.mean() 函数返回数组中元素的算术平均值,如果提供了轴,则沿其计算。

numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

标准差:

std = sqrt(mean(x-x.mean()**2))

import numpy as np 
print (np.std([1,2,3,4]))

方差:

mean((x - x.mean())** 2)

import numpy as np
print (np.var([1,2,3,4]))

Numpy排序、条件筛选函数

numpy.sort() 函数返回输入数组的排序副本。

numpy.argsort() 函数返回的是数组值从小到大的索引值。

numpy.lexsort() 用于对多个序列进行排序。

numpy.where() 函数返回输入数组中满足给定条件的元素的索引。

numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素。

Numpy矩阵库(Matrix)

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

NumPy 中除了可以使用 numpy.transpose 函数来对换数组的维度,还可以使用 T 属性。

numpy.matlib.empty() 函数返回一个新的矩阵。

numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。

numpy.matlib.ones()函数创建一个以 1 填充的矩阵。

numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。

numpy.matlib.identity() 函数返回给定大小的单位矩阵。

numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。

【(学习自用)参考菜鸟教程】

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值