本文实例讲述了python3.5基础之numpy模块的使用。分享给大家供大家参考,具体如下:
1、简介
2、多维数组——ndarray
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import numpy as np #1.创建ndarray #创建一维数组 n1 = np.array([ 1 , 2 , 3 , 4 ]) print (n1) #属性--ndim:维度;dtype:元素类型;shape:数组形状; # size:数组元素总个数,shape值相乘得到 print ( "n1维度:" ,n1.ndim) print ( "n1元素类型:" ,n1.dtype) print ( "n1数组形状:" ,n1.shape) print ( "n1数组元素总个数:" ,n1.size) #创建二维数组 n2 = np.array([ [ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ] ]) print (n2) print ( "n2维度:" ,n2.ndim) print ( "n2元素类型:" ,n2.dtype) #创建三维数组 n3 = np.array([ [ [ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ] ], [ [ 10 , 20 , 30 , 40 ], [ 50 , 60 , 70 , 80 ] ] ]) print (n3) print ( "n3数组形状:" ,n3.shape) print ( "n3数组元素总个数:" ,n3.size) #2.通过函数创建数组 z = np.zeros(( 3 , 2 )) #创建指定形状的数组,数值由零填充 print (z) print (z.dtype) o = np.ones(( 2 , 4 )) #创建指定形状的数组,数值由1填充 print (o) e = np.empty(( 2 , 3 , 2 )) #创建指定形状的数组,数值由未初始化的垃圾值填充 print (e) #3.通过函数计算的方式去创建数组 #一个参数,区间左闭右开,默认起始值为0,步长为1 np1 = np.arange( 10 ) print (np1) #两个参数(起始值,终止值),区间左闭右开,默认步长为1 np2 = np.arange( 2 , 10 ) print (np2) #三个参数(起始值,终止值,步长),区间左闭右开,步长为2 np3 = np.arange( 2 , 10 , 2 ) print (np3) #倒序创建数组元素 np4 = np.arange( 10 , 2 , - 1 ) print (np4) #全闭区间,参数(起始值,终止值,元素个数),等差数列 np5 = np.linspace( 0 , 10 , 5 ) print (np5) #全闭区间,以10为底数参数为指数(起始值,终止值,元素个数),等比数列 np6 = np.logspace( 0 , 2 , 5 ) print (np6) #生成随机数的数组 np7 = np.random.random(( 2 , 3 )) print (np7) |
运行结果:
[1 2 3 4]
n1维度: 1
n1元素类型: int32
n1数组形状: (4,)
n1数组元素总个数: 4
[[1 2 3 4]
[5 6 7 8]]
n2维度: 2
n2元素类型: int32
[[[ 1 2 3 4]
[ 5 6 7 8]][[10 20 30 40]
[50 60 70 80]]]
n3数组形状: (2, 2, 4)
n3数组元素总个数: 16
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
float64
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
[[[ 1.02548961e-305 5.40165714e-067]
[ 1.05952696e-153 9.69380992e+141]
[ 2.17151199e+214 4.34975848e-114]][[ 2.08064175e-115 1.91431714e+227]
[ 6.42897811e-109 1.26088822e+232]
[ 9.51634286e-114 5.45764552e-306]]]
[0 1 2 3 4 5 6 7 8 9]
[2 3 4 5 6 7 8 9]
[2 4 6 8]
[10 9 8 7 6 5 4 3]
[ 0. 2.5 5. 7.5 10. ]
[ 1. 3.16227766 10. 31.6227766 100. ]
[[ 0.55980469 0.99477652 0.82310732]
[ 0.97239333 0.1409895 0.57213264]]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#修改ndarray形状 np8 = np.arange( 0 , 20 , 2 ) print (np8) print (np8.size) np9 = np8.reshape( 2 , 5 ) print (np9) print (np9.size) #reshape函数是对被修改数组的一个拷贝,共享同一内存, # 修改其中一个数组会影响里一个 np9[ 1 ][ 2 ] = 50 print (np8) print (np9) # -1表示第二维自动根据元素个数计算 np10 = np8.reshape( 5 , - 1 ) print (np10) #shape直接修改原来数组的形状 np8.shape = ( 2 , - 1 ) print (np8) |
运行结果:
[ 0 2 4 6 8 10 12 14 16 18]
10
[[ 0 2 4 6 8]
[10 12 14 16 18]]
10
[ 0 2 4 6 8 10 12 50 16 18]
[[ 0 2 4 6 8]
[10 12 50 16 18]]
[[ 0 2]
[ 4 6]
[ 8 10]
[12 50]
[16 18]]
[[ 0 2 4 6 8]
[10 12 50 16 18]]
numpy基本操作说明
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/loveliuzz/article/details/78498022