Numpy库的介绍及使用

1. Numpy库入门

Numpy是一个开源的Python科学计算基础库。

Numpy的引用:

import numpy as np

其中 as np 为引入模块的别名,可省略或者更改,但是建议使用上述约定的别名。

1.1 数据的维度

dict = {
	"firstName": "Richard",
	"lastName" : "Lee",
	"address"  : {
					"city"    : "长沙",
					"zipcode" : "100081"
				}
}

1.2 ndarray的优势

python既然有列表数据类型了,并且可以表示一维数据、多维数据,为什么还需要一个ndarray数据对象(类型)呢?

举一个简单的例子:计算 Numpy库的介绍及使用 ,其中 A 和 B 都是一维数组

def pySum():
	a = [0, 1, 2, 3, 4]
	b = [9, 8, 7, 6, 5]
	c = []
	for i in range (len(a)): # 需要使用for循环
		c.append(a[i]**2 + b[i]**3)
	return c
print (pySum())
import numpy as np
def pySum():
	a = np.array([0, 1, 2, 3, 4])
	b = np.array([9, 8, 7, 6, 5])
	c = a**2 + b**3  # 把一维数组a,b直接当作两个基本数据进行运算
	return c
print (pySum())

ndarray实例

Numpy库的介绍及使用

注意:在执行12行的时候不要少了个 []
a = np.array([[1,2],[3,4]])
a = np.array([1,2],[3,4]) ❌ , 这里需要将整个列表 [[1,2],[3,4]] 转换成一个ndarray对象

1.3 ndarray对象的属性

Numpy库的介绍及使用

举例如下:

Numpy库的介绍及使用

1.4 ndarray数组的创建和变换

1.4.1 ndarray数组的创建方法

(1) 从Python中的列表、元组等类型创建ndarray数组

x = np.array(list/tuple)
x = np.array(list/tuple,dtype=np.float32)

当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型。

(2)使用NumPy中函数创建ndarray数组,如:arange,ones,zeros等,如下图:

Numpy库的介绍及使用

举例如下:

Numpy库的介绍及使用

注意:

在进行大规模的科学计算时常使用到的函数如下:

Numpy库的介绍及使用

Numpy库的介绍及使用

举例如下:
Numpy库的介绍及使用

注意:

1.4.2 ndarray数组维度的变换

Numpy库的介绍及使用

.reshape().resize()相同点是都不改变数组元素,不同点是.reshape()不改变原数组,.resize()是修改了原数组。举例如下:

Numpy库的介绍及使用

利用 .flatten() 函数对数组进行降维,返回折叠后的一维数组,原数组不变,举例如下:

Numpy库的介绍及使用

利用astype() 函数对ndarray数组进行类型变换,astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。举例如下:

Numpy库的介绍及使用

ndarray数组向列表的转换,列表是python中最原始的数据类型,虽然运算速度比numpy慢很多,但是与原生的python语言相适应的程序中,这种转换也是十分常见的

Numpy库的介绍及使用

1.5 ndarray数组的索引和切片

Numpy库的介绍及使用

Numpy库的介绍及使用

Numpy库的介绍及使用

注意:从左到右索引时起始位置是从0开始的,从右到左索引时起始位置是从-1开始的。

1.6 ndarray数组的运算

Numpy库的介绍及使用

Numpy库的介绍及使用

Numpy库的介绍及使用

2. 数据存取与函数

Numpy库的介绍及使用

2.1 CSV存取数据

(1)CSV写入数据:np.savetxt()

np.savetxt(fname, array, fmt='%.18e', delimiter=None)

Numpy库的介绍及使用

(2)CSV读入数据:np.loadtxt()

np.loadtxt(fname, dtype=np.float, delimiter=None, unpack=False)

Numpy库的介绍及使用

注意:CSV文件的局限性表现在只能有效存储一维和二维数组

2.2 多维数据的存取

(1)多维写入数据:tofile()

a.tofile(fname, sep='', format='%s')

Numpy库的介绍及使用

注意:tofile()方法只是将数组中的元素逐一列出并输出到这个文件中,而没有包含任何的维度信息

(2)多维读入数据:np.fromfile()

np.fromfile(fname, dtype=float, count=-1, sep='')

Numpy库的介绍及使用

注意:该方法需要读取时知道存入文件时数组的维度和元素类型; a.tofile()和np.fromfile()需要配合使用;可以通过元数据文件来存储额外信息(尤其针对大规模数据的存取)

2.3 numpy的便捷文件存取

np.save(fname,array)或np.savez(fname,array)
np.load(fname)

Numpy库的介绍及使用

2.4 numpy随机数函数

rand(d0,d1,...,dn)  # 均匀分布
randn(d0,d1,...,dn) # 正态分布
randint(low[,high,shape) # 指定范围
seed(s)             # 随机数种子

Numpy库的介绍及使用

Numpy库的介绍及使用

2.5 numpy统计函数

numpy直接提供的统计类函数,通过 np.* 来调用,比如 np.std()、np.average()

sum(a,axis=None)  # 根据axis计算数组a相关元素之和
mean(a,axis=None) # 根据axis计算数组a相关元素的期望
average(a,axis=None,weights=None) # 根据axis计算数组a相关元素的加权平均值
std(a,axis=None) # 根据axis计算数组a相关元素的标准差
var(a,axis=None) # 根据axis计算数组a相关元素的方差

Numpy库的介绍及使用

sum()、mean()、average()、std()、var() 函数举例:

Numpy库的介绍及使用

2.6 numpy梯度函数

np.gradient(f)  # 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度

梯度函数 gradient() 举例:

Numpy库的介绍及使用

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年3月28日
下一篇 2023年3月28日

相关推荐