1、numpy数组是同质数组,即所有元素的数据类型必须相同。
2、ndarray数组一般要求所有元素的数据类型相同,下标从0开始,最后一个元素的下标为数组长度减1。
实例
1
2
3
4
5
6
|
import numpy as np a = np.arange( 0 , 5 , 1 ) print (a) b = np.arange( 0 , 10 , 2 ) print (b) |
知识点扩充:
定义数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
>>> import numpy as np >>> m = np.array([[ 1 , 2 , 3 ], [ 2 , 3 , 4 ]]) #定义矩阵,int64 >>> m array([[ 1 , 2 , 3 ], [ 2 , 3 , 4 ]]) >>> m = np.array([[ 1 , 2 , 3 ], [ 2 , 3 , 4 ]], dtype = np. float ) #定义矩阵,float64 >>> m array([[ 1. , 2. , 3. ], [ 2. , 3. , 4. ]]) >>> print (m.dtype) #数据类型 float64 >>> print (m.shape) #形状2行3列 ( 2 , 3 ) >>> print (m.ndim) #维数 2 >>> print (m.size) #元素个数 6 >>> print ( type (m)) < class 'numpy.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
|
>>> m = np.zeros(( 2 , 2 )) #全0 >>> m array([[ 0. , 0. ], [ 0. , 0. ]]) >>> print ( type (m)) #也是ndarray类型 < class 'numpy.ndarray' > >>> m = np.ones(( 2 , 2 , 3 )) #全1 >>> m = np.full(( 3 , 4 ), 7 ) #全为7 >>> np.eye( 3 ) #单位矩阵 array([[ 1. , 0. , 0. ], [ 0. , 1. , 0. ], [ 0. , 0. , 1. ]]) >>> np.arange( 20 ).reshape( 4 , 5 ) #生成一个4行5列的数组 >>> >>> np.random.random(( 2 , 3 )) #[0,1)随机数 array([[ 0.51123127 , 0.40852721 , 0.26159126 ], [ 0.42450279 , 0.34763668 , 0.06167501 ]]) >>> np.random.randint( 1 , 10 ,( 2 , 3 )) #[1,10)随机整数的2行3列数组 array([[ 5 , 4 , 9 ], [ 2 , 5 , 7 ]]) >>> np.random.randn( 2 , 3 ) #正态随机分布 array([[ - 0.29538656 , - 0.50370707 , - 2.05627716 ], [ - 1.50126655 , 0.41884067 , 0.67306605 ]]) >>> np.random.choice([ 10 , 20 , 30 ], ( 2 , 3 )) #随机选择 array([[ 10 , 20 , 10 ], [ 30 , 10 , 20 ]]) >>> np.random.beta( 1 , 10 ,( 2 , 3 )) #贝塔分布 array([[ 0.01588963 , 0.12635485 , 0.22279098 ], [ 0.08950147 , 0.02244569 , 0.00953366 ]]) |
操作数组
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
|
>>> from numpy import * >>> a1 = array([ 1 , 1 , 1 ]) #定义一个数组 >>> a2 = array([ 2 , 2 , 2 ]) >>> a1 + a2 #对于元素相加 array([ 3 , 3 , 3 ]) >>> a1 * 2 #乘一个数 array([ 2 , 2 , 2 ]) ## >>> a1 = np.array([ 1 , 2 , 3 ]) >>> a1 array([ 1 , 2 , 3 ]) >>> a1 * * 3 #表示对数组中的每个数做立方 array([ 1 , 8 , 27 ]) ##取值,注意的是它是以0为开始坐标,不matlab不同 >>> a1[ 1 ] 2 ##定义多维数组 >>> a3 = np.array([[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]]) >>> a3 array([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]]) >>> a3[ 0 ] #取出第一行的数据 array([ 1 , 2 , 3 ]) >>> a3[ 0 , 0 ] #第一行第一个数据 1 >>> a3[ 0 ][ 0 ] #也可用这种方式 1 >>> a3 array([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]]) >>> a3. sum (axis = 0 ) #按行相加,列不变 array([ 5 , 7 , 9 ]) >>> a3. sum (axis = 1 ) #按列相加,行不变 array([ 6 , 15 ]) |
到此这篇关于python ndarray数组对象特点及实例分享的文章就介绍到这了,更多相关python ndarray数组对象有什么特点内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/jichu/34062.html