Pwner's Blog

能全力以赴不尽力而为

0%

Numpy 基本语法

Numpy 是 Python 数据科学中最基本的一个库之一。

数组 Array

创建数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np

array_1 = np.array([1,2,3,4]) #调用numpy的array()方法,将列表(向量)格式化成“一维矩阵”
array_2 = np.array([[1,2,3],[4,5,6],[7,8,9]]) #创建多维数组

array_3 = np.arange(1,10) #创建[1,10)范围内的一维数组array([1, 2, 3, 4, 5, 6, 7, 8, 9])

array_4 = np.arange(1,10,2) #创建[1,10)范围内步长为2的一维矩阵


array_5 = np.zeros(5) #创建零向量array([0., 0., 0., 0., 0.])


array_6 = np.zeros([2,3]) #创建两行三列的零矩阵


array_7 = np.eye(5) #创建五阶单位数组
1
2
3
4
5
6
7
8
9
10
np.random.randn(10)                               #创建10个元素的数组,符合正态分布


np.random.randint(10) #返回10以内的一个随机数


np.random.randint(10,size=(2,3)) #返回一个2行3列的矩阵


np.random.randint(10,size=20).reshape(4,5) #返回一个4行5列的矩阵

数组矩阵

1
2
3
4
5
6
7
8
9
10
11
12
13
14
b = np.array([[1.0,2,3],[4.0,5,6]])

print(b.dtype) #查看数组的dtype属性,即矩阵中最精确的元素的数据类型

print(b[1][0]) #查看数组第二行第一个值


print(b[1,0]) #同上


print(b[:2,1:]) #查看数组的子组 [行切片,列切片] ,左闭右开



数组运算

1
2
3
4
5
6
7
8
9
a = np.random.randint(10,size=20).reshape(4,5) 
b = np.random.randint(10,size=20).reshape(4,5)

a±b #矩阵加减法

a*b #矩阵对应元素相乘

a/b #矩阵对应元素相除

矩阵 Matrix

创建矩阵

1
np.mat([[1,2,3],[4,5,6]])

数组转化成矩阵

1
np.mat(a)

矩阵的运算

1
2
3
4
5
6
7
8
9
10
11
12
13
A = np.mat(a)
B = np.mat(b)


A±B #矩阵加减法


a = np.random.randint(10,size=20).reshape(4,5)
b = np.random.randint(10,size=20).reshape(5,4)


a*b #矩阵乘法

Array 常用函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = np.random.randint(10,size=20).reshape(4,5) 

np.unique(a) #unique()方法返回数组中所有唯一的指


sum(a) #返回矩阵每一列的和


sum(a[0]) #返回矩阵第一行的和

sum(a[:,0]) #返回矩阵第一列的和 [行,列] [:,0]表示不指定行,返回第一列的和

a.max() #返回矩阵中的最大值


max(a[0]) #返回矩阵第一行的最大值

max(a[:,0]) #返回矩阵第一列的最大值

Array 的 input 和 output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import pickle 
import numpy as np

x = np.arange(10) #初始化一个array

f = open('x.pkl','wb') #打开x.pkl文件,通过wb(写二进制)的方式

pickle.dump(x,f) #使用 pickle.dump() 方法将 x dump到 f 文件中


#在Jupyter notebook中使用

!ls

#命令可以查看当前目录的文件


可以看到x已经被序列化到硬盘中生成一个x.pkl文件


f = open('x.pkl','rb')

pickle.load(f) #从二进制文件 x.pkl 中读取



np.save('one_array',x) #直接通过save()方法序列化成 one_array.npy 文件到硬盘


np.load('one_array.npy') #从 one_array.npy 文件中读取


/*-------------------------------------------------------*/
y = np.arange(20) #新建一个数组


np.savez('two_array.npz', a=x, b=y) #将多个array压缩到一个 npz文件 中去,在当前目录下会生成一个 one_array.npz 文件


c = np.load('two_array.npz') #加载 npz 文件

c['a']

c['b'] #读取 npz 文件中的a数组和b数组
如果文章对你有用,可以请我喝杯咖啡~
  • 本文作者: Pwner
  • 本文链接: https://pwner.cn/posts/fe0a1c9b.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!