- 数组元素个数
import numpy as np #数组元素个数 a = [1,2,3,4,5] b = np.array(a) b.size
5
- 数组形状
#数组形状 b.shape
(5,)
-
#数组维度 b.ndim
1
-
#数组元素类型 b.dtype
dtype('int32')
-
#数组索引 #定义一个随机整数0-99的4*4数组 array1 = np.random.randint(0,100,(4,4)) print(array1) #数组索引 array1[0,1]
[[76 42 61 60]
[85 62 59 35]
[ 2 74 21 94]
[16 88 78 40]]
42 -
#数组切片 [左闭右开) array1[1:3,2:4]
array([[59, 35],
[21, 94]]) -
array2 = np.arange(0,10) print(array2)
[0 1 2 3 4 5 6 7 8 9]
-
#将数组反转 array2[::-1]
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
-
#通过两个::进行切片 print(array2[::2]) print(array2[::-2])
[0 2 4 6 8]
[9 7 5 3 1] -
#变形使用 reshape 函数,参数用tuple import numpy as np array3 = np.arange(0,10) print(array3) array3.shape
[0 1 2 3 4 5 6 7 8 9]
(10,)
-
#使用reshape函数进行变形 #将原数组变形为五行两列 array3.reshape((5,2))
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]]) -
n1 = np.random.randint(0,100,(3,4,5)) n1
array([[[ 8, 49, 3, 74, 58],
[12, 83, 4, 62, 75],
[ 0, 44, 35, 56, 81],
[24, 75, 4, 28, 32]],[[81, 69, 15, 21, 16],
[81, 68, 23, 0, 50],
[58, 65, 69, 56, 92],
[64, 84, 24, 6, 97]],[[64, 62, 70, 11, 59],
[49, 62, 17, 43, 27],
[24, 41, 71, 15, 41],
[31, 21, 51, 52, 88]]]) -
n1.shape
(3, 4, 5)
-
n1.reshape(3*4*5)
array([ 8, 49, 3, 74, 58, 12, 83, 4, 62, 75, 0, 44, 35, 56, 81, 24, 75,
4, 28, 32, 81, 69, 15, 21, 16, 81, 68, 23, 0, 50, 58, 65, 69, 56,
92, 64, 84, 24, 6, 97, 64, 62, 70, 11, 59, 49, 62, 17, 43, 27, 24,
41, 71, 15, 41, 31, 21, 51, 52, 88]) -
#使用负数直接转换成一维数组 n1.reshape(-1)
array([6, 4, 0, 5, 9, 6, 6, 5, 0, 2, 7, 1, 5, 5, 9, 0, 9, 7, 6, 5, 6, 2,
9, 9, 1])array([ 8, 49, 3, 74, 58, 12, 83, 4, 62, 75, 0, 44, 35, 56, 81, 24, 75,
4, 28, 32, 81, 69, 15, 21, 16, 81, 68, 23, 0, 50, 58, 65, 69, 56,
92, 64, 84, 24, 6, 97, 64, 62, 70, 11, 59, 49, 62, 17, 43, 27, 24,
41, 71, 15, 41, 31, 21, 51, 52, 88]) -
#级联 np.concatenate()级联的方向 级联还指用来设计一对多关系 ''' 1.级联的参数是列表,一定要加中括号或者小括号; 2.维度必须相同; 3.形状相符; 4.@级联的方向默认值是shape这个tuple的第一个值所代表的维度方向; 5.可通过axis参数改变级联的方向; ''' n1 = np.random.randint(0,10,(5,5))
array([[3, 9, 9, 7, 7],
[6, 8, 3, 1, 7],
[4, 9, 9, 4, 3],
[7, 4, 8, 9, 4],
[2, 5, 1, 8, 2]]) -
#列级联 np.concatenate((n1,n1),axis = 0)
array([[3, 9, 9, 7, 7],
[6, 8, 3, 1, 7],
[4, 9, 9, 4, 3],
[7, 4, 8, 9, 4],
[2, 5, 1, 8, 2],
[3, 9, 9, 7, 7],
[6, 8, 3, 1, 7],
[4, 9, 9, 4, 3],
[7, 4, 8, 9, 4],
[2, 5, 1, 8, 2]]) -
#行列级联 np.concatenate((n1,n1),axis = 1)
array([[3, 9, 9, 7, 7, 3, 9, 9, 7, 7],
[6, 8, 3, 1, 7, 6, 8, 3, 1, 7],
[4, 9, 9, 4, 3, 4, 9, 9, 4, 3],
[7, 4, 8, 9, 4, 7, 4, 8, 9, 4],
[2, 5, 1, 8, 2, 2, 5, 1, 8, 2]]) -
#np.hstack 与 np.vstack :水平级联与垂直级联,处理自己,进行维度的变更。 n2 = np.random.randint(0,100,size = 10) print(n2) #vertical 垂直 n3 = np.vstack(n2) print(n3.shape) n3
[16 77 67 95 14 63 35 26 96 86]
(10, 1)array([[16],
[77],
[67],
[95],
[14],
[63],
[35],
[26],
[96],
[86]]) -
#水平 n4 = np.hstack(n3) n4
array([16, 77, 67, 95, 14, 63, 35, 26, 96, 86])
-
''' 切分 与级联类似,常用函数: np.split np.vsplit np.hsplit ''' n5 = np.random.randint(0,150,size = (5,7)) n5
array([[ 45, 132, 94, 92, 62, 76, 95],
[ 51, 4, 117, 116, 148, 67, 78],
[101, 76, 72, 77, 1, 61, 80],
[ 92, 116, 38, 61, 88, 143, 67],
[121, 22, 19, 35, 85, 10, 35]]) -
#分别在1,3前切割{0,12,34} np.split(n5,(1,3))
[array([[ 45, 132, 94, 92, 62, 76, 95]]),
array([[ 51, 4, 117, 116, 148, 67, 78],
[101, 76, 72, 77, 1, 61, 80]]),
array([[ 92, 116, 38, 61, 88, 143, 67],
[121, 22, 19, 35, 85, 10, 35]])] -
#水平切分 np.split(n5,(1,3),axis = 1)
[array([[ 45],
[ 51],
[101],
[ 92],
[121]]), array([[132, 94],
[ 4, 117],
[ 76, 72],
[116, 38],
[ 22, 19]]), array([[ 92, 62, 76, 95],
[116, 148, 67, 78],
[ 77, 1, 61, 80],
[ 61, 88, 143, 67],
[ 35, 85, 10, 35]])] -
#垂直切分 np.vsplit(n5,(1,3))
[array([[ 45, 132, 94, 92, 62, 76, 95]]),
array([[ 51, 4, 117, 116, 148, 67, 78],
[101, 76, 72, 77, 1, 61, 80]]),
array([[ 92, 116, 38, 61, 88, 143, 67],
[121, 22, 19, 35, 85, 10, 35]])] -
#水平切分 np.hsplit(n5,(1,3))
[array([[ 64],
[ 16],
[ 50],
[ 59],
[140]]), array([[ 94, 101],
[102, 27],
[104, 132],
[103, 148],
[ 57, 147]]), array([[ 13, 103, 32, 128],
[116, 125, 10, 145],
[ 4, 103, 126, 26],
[ 77, 69, 71, 91],
[ 18, 143, 3, 97]])] -
a = [x for x in range(5)] n = np.array(a) print(n) n[2] = 512 print(n) n2 =n n2[2] = 1024 display(n,n2)
[0 1 2 3 4]
[ 0 1 512 3 4]array([ 0, 1, 1024, 3, 4])
array([ 0, 1, 1024, 3, 4])
-
n3 = n.copy() n3
array([ 0, 1, 1024, 3, 4])
-
n3[2] = 0 display(n,n3)
array([ 0, 1, 1024, 3, 4])
array([0, 1, 0, 3, 4])
Numpy 内部解除了python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库。
最新推荐文章于 2024-01-04 11:19:02 发布