numpy数组和传统数组,python定义numpy数组

  numpy数组和传统数组,python定义numpy数组

  本文介绍了Python中的numpy数组模块,并通过示例代码对其进行了详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

  00-1010一、numpy 1简介。numpy库的功能:2。NumPy是一个非常快的数学库,主要用于数组计算,包括:3。NumPy应用程序2。为什么要用numpy 3。创建numpy数组1。转换列表以创建numpy数组。可以选择显式指定dtype2、用arange方法创建numpy数组3、用其他方法创建numpy数组4、在numpy或pandas中使用shape()整形shape(行列转换)4、用numpy.random生成随机数5、fromstring/fromfunction 4、公共属性5、切割7、元素替换8、IX。归并、运算符X、运算函数X、矩阵化X、numpy数组的数学统计方法1、最大值和最小值、平均值、总和2、累计总和3、排序4、方差5、标准差6、中值

  

目录

 

  Numpy是Python的开源扩展库,用于数值计算。这个库可以用来存储和处理大型的numpy数组,比Python自带的嵌套列表结构效率高很多(这个结构也可以用来表示numpy数组)。

  

一、numpy简介

 

  与list list不同的是,它提供了数组运算、数组操作、统计分布和简单的数学模型。计算速度之所以快,甚至是因为python内置的简单运算,使其成为pandas(分析结构化数据的工具集)和sklearn(Scikit-learn(sklearn)是机器学习中常用的第三方模块)等模块的依赖包。

  TensorFlow、PyTorch等高级框架。具有与numpy非常相似的数组操作。

  

1、numpy库作用:

 

  一个强大的N维数组对象ndarray广播函数,集成了C/C /Fortran代码的线性代数、傅立叶变换、随机数生成等工具的功能。

  

2、NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

 

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

  SciPy:是一个开源的Python算法库和数学工具包。SciPy包含最优化、线性代数、积分、插值、特殊函数、快速傅立叶变换、信号处理与图像处理、常微分方程求解等模块以及其他科学与工程中常用的计算。Matplotlib:是Python编程语言及其数值数学扩展包NumPy的可视化接口。它通过使用通用图形用户界面工具包,如Tkinter、wxPython、Qt或GTK,为应用程序嵌入式绘图提供应用程序接口(API)。

  

3、NumPy 应用

 

  lis1=[1,2,3]

  lis2=[4,5,6]

  如果我们想要L

  is1 * lis2得到一个结果为lis_res = [4, 10, 18],非常复杂。

  

 

  

三、创建numpy数组

 

  numpy数组即numpy的ndarray对象,

  

 

  

1、将列表转换创建numpy数组,可选择显式指定dtype

 

  

import numpy as np

 

  

 

  

2、arange方式创建numpy数组

 

  

# 构造0-9的ndarray数组

 

  

 

  

3、其他方式创建numpy数组

 

  

# 构造3*4的全0的numpy数组

 

  

 

  

4、numpy或pandas中reshape()重塑形状(行列转换)的用法

 

  例子:

  

z = np.array([[1, 2, 3, 4],

 

  1.z.reshape(-1)或z.reshape(1,-1),转换成1行,列数未知。即将数组横向平铺。

  

z.reshape(-1)

 

  2.z.reshape(-1, 1)),转换成1列,行数未知。即将数组纵向平铺。

  

z.reshape(-1,1)

 

  3.z.reshape(-1, 2),newshape列数等于2,行数未知,reshape后的shape等于(8, 2)

  

z.reshape(-1, 2)

 

  

 

  

4、numpy.random生成随机数

 

  举例:

  

rs = np.random.RandomState(1) # RandomState()方法会让数据值随机一次,之后都是相同的数据

 

  

 

  

5、 fromstring/fromfunction(了解)

 

  fromstring:通过对字符串的字符编码所对应ASCII编码的位置,生成一个ndarray对象

  

s = abcdef

 

  fromfunction:使用函数对numpy数组元素的行和列的索引做处理,得到当前元素的值。

  索引从0开始,并构造一个3*4的numpy数组 print(np.fromfunction(func, (3, 4)))

  

def func(i, j):

 

  

 

  

四、常用属性

 

  举例:

  

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

 

  

 

  

五、切割

 

  切分numpy数组类似于列表的切割,但是与列表的切割不同的是,numpy数组的切割涉及到行和列的切割,但是两者切割的方式都是从索引0开始,并且取头不取尾。

  

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

 

  

 

  

七、元素替换

 

  numpy数组元素的替换,类似于列表元素的替换,并且numpy数组也是一个可变类型的数据,即如果对numpy数组进行替换操作,会修改原numpy数组的元素,所以下面我们用.copy()方法举例numpy数组元素的替换。

  

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

 

  

 

  

八、合并

 

  

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

 

  

 

  

九、运算符

 

  

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

 

  

 

  

十、运算函数

 

  

  • 一元函数:abs, sqrt, exp, log, ceil, floor, rint, trunc, modf, isnan, isinf, cos, sin, tan

  • 二元函数:add, substract, multiply, divide, power, mod, maximum, mininum

 

  

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

 

  

 

  

十一、矩阵化

 

  

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

 

  

 

  

十二、numpy数组的数学和统计方法

 

  

 

  

1、最大最小值、平均、求和

 

  

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

 

  

 

  

2、累加和

 

  

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

 

  

 

  

3、排序

 

  numpy.sort(a, axis, kind, order):返回输入数组的排序副本

  

  • a: 要排序的数组

  • axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序

  • kind: 默认为'quicksort'(快速排序) ,'mergesort'(归并排序),'heapsort'(堆排序)

  • order: 如果数组包含字段,则是要排序的字段

 

  

a = np.array([[3,7],[9,1]])

 

  

 

  

4、 方差

 

  方差公式为

  

 

  其中x为numpy数组。

  

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

 

  

 

  

5、 标准差

 

  标准差公式为:

  

 

  

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

 

  

 

  

6、 中位数

 

  

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

 

  到此这篇关于Python数组模块numpy的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: