python 一维插值_Python3基础包——Numpy对一维数组的操作

1. 简介

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。最主要的数据结构是ndarray数组。

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab。

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

Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。

2. 使用

导入

import numpy as np

创建一维数组,使用 np.array()

# 方式有两种:直接将“元素”以list形式添加进去;先制作一个list,然后将其添加进去

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

my_list = [1, 2, 3, 4, 5, 6]

my_array = np.array(my_list)

创建的方式如上,但是numpy中提供了一些创建一些常量值数组的方法,如下:

# 创建以0为常量值初始化的数组

np.zeros(5,dytpe=float)# 结果为浮点类型的值为0的数组,一共5个元素(还可以是int类型)

# 创建以1为常量值初始化的数组

np.ones(3)# 结果为值为1的数组,一共3个元素

# 创建一个空数组,然后使用.fill()方法赋值

a=np.empty(4)# 4个元素的空数组

a.fill(5.5)# 赋值5.5

# 创建一个元素递增的数组,且可以自定义步长

a=np.arange(8)# 结果为 [0,1,2,3,4,5,6,7]

b=np.arange(0,1,0.2)# 结果为在[0,1)之间,步长为0.2的递增数组[0 0.2 0.4 0.6 0.8]

** 对比python的range()函数

除此之外,使用numpy中的random模块还可以创建随机数字的数组,之后会更详细说明,此处仅举例如下:

a=np.random.randn(5)

print(a)

---------------------------------------

# 结果如下,因为是随机数字,所以每次运行都会生成不同数组

[0.42566659 1.25296977 1.197576 1.09464745 0.98762075]

将csv文件转化成数组或阵列

使用 np.genfromtxt( ‘csv文件名’,delimiter = ‘文件中的分割符’ )函数将文件转化成数组

csv_array = np.genfromtxt('sample.csv', delimiter=',')

print(csv_array)

取值

想获取一维数组中的某个元素,操作和list列表的index一样

a = np.array([5, 2, 7, 0, 11])

a[0]# 结果为 5

!!需要注意的是!!

我们可以看出来列表与数组有相同的元素索引机制,但是为什么还要区分两者数据类型呢?主要区别在于:列表中的元素的数据类型可以不一致,任意类型的元素;但是数组的所有元素必须是相同的数据类型。

个人认为还有一个却别在于,数组通过“可视化”可以直接转化成一个表格展示,即使是一维数组;但是列表则无论几维可能无法直接转换成表格的形式阅读

对数组中元素逻辑操作(> < & |)

# 直接使用数组进行逻辑判断,结果返回:一个数组,其中每个元素根据逻辑判断的布尔类型的结果

a > 3

-----------------------------

# 结果如下,虽然看上去和列表长相一样,但是强调一下,一维数组中array只是没有显示出来!!

[False, False, False,True, True]

说明:

a. 和列表的区别还包括:列表是无法作为一个整体对其中的各个元素进行逻辑判断的!列表能做的只有切片或者叫过滤,这里不做解释,详见python3基础——列表的基础操作

b. 对数据的一层逻辑判断的用途:使用在数据分析中,对数据处理的过程

过滤/切片

过滤的方法很多,这里只简单介绍使用逻辑符号的方式。

# 需要注意的是,我们对数组切片或者过滤的操作希望得到的仍然是一个数组

# 所以我们要将"逻辑判断作为参数"传入数组中时,返回的则是一个过滤后的数组

a[a > 3]# 结果 [4,5] 且一维数组中array没有显示出来

a[(a > 3) | (a < 2)]# 结果 [1,4,5] 且一维数组中array没有显示出来

对一维数组中每个元素同时操作

# 对数组中元素➕操作

a_plus_3 = a + 3

# 对数组中元素 乘方** 操作

a ** 2 # 结果为 [ 1, 4, 9, 16, 25, 36]

未完

下一篇《Python3基础包——Numpy对二维数组的操作》

你可能感兴趣的:(python,一维插值)