import numpy as np #导入numpy arr = np.arange(10) #类似于list的range() arr Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr[4] #索引(注意是从0开始的) Out[4]: 4 arr[3:6] #切片 Out[6]: array([3, 4, 5]) arr_old = arr.copy() #先复制一个副本 arr_old Out[8]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr[3:6] = 33 arr #可以发现将标量赋值给一个切片时,该值可以传播到整个选区 Out[10]: array([ 0, 1, 2, 33, 33, 33, 6, 7, 8, 9]) arr_old Out[11]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr1 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]]) arr1[0] Out[13]: array([1, 2, 3]) arr1[1,2] Out[14]: 6
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
arr1 = np.arange(12)
arr2 = arr1.reshape(2,2,3) #将arr1变为2×2×3数组
arr2
Out[9]:
array([[[ 0, 1, 2],
[ 3, 4, 5]],
[[ 6, 7, 8],
[ 9, 10, 11]]])
arr2[0]
Out[10]:
array([[0, 1, 2],
[3, 4, 5]])
arr2[1]
Out[11]:
array([[ 6, 7, 8],
[ 9, 10, 11]])
arr2[0,1]
Out[12]: array([3, 4, 5])
arr2[0] = 23 #赋值
arr2
Out[15]:
array([[[23, 23, 23],
[23, 23, 23]],
[[ 6, 7, 8],
[ 9, 10, 11]]])
arr1 = np.arange(36)#创建一个一维数组。
arr2 = arr1.reshape(6,6) #更改数组形状。
Out[20]:
array([[ 0, 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]])
arr2[0,2:4] Out[29]: array([2, 3])
arr2[1] #取得第2行
Out[37]: array([ 6, 7, 8, 9, 10, 11])
arr2[:,3] #取得第3列, 只有:代表选取整列(也就是整个轴)
Out[38]: array([ 3, 9, 15, 21, 27, 33])
arr2[1:4,2:4] # 取得一个二维数组
Out[40]:
array([[ 8, 9],
[14, 15],
[20, 21]])
arr2[::2,::2] #设置步长为2
Out[41]:
array([[ 0, 2, 4],
[12, 14, 16],
[24, 26, 28]])
arr3 = arr2.reshape(4,3,3)
arr3[2:,:1] = 22 #对切片表达式赋值
arr3
Out[25]:
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[22, 13, 14, 15, 16, 17],
[22, 19, 20, 21, 22, 23],
[22, 25, 26, 27, 28, 29],
arr3 = (np.arange(36)).reshape(6,6)#生成6*6的数组
arr3
Out[35]:
array([[ 0, 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]])
x = np.array([0, 1, 2, 1, 4, 5])
x == 1#通过比较运算得到一个布尔数组
Out[42]: array([False, True, False, True, False, False], dtype=bool)
arr3[x == 1] #布尔索引
Out[43]:
array([[ 6, 7, 8, 9, 10, 11],
[18, 19, 20, 21, 22, 23]])
arr3[x == 1,2:]#切片
Out[44]:
array([[ 8, 9, 10, 11],
[20, 21, 22, 23]])
arr3[x == 1,-3:]#切片
Out[47]:
array([[ 9, 10, 11],
[21, 22, 23]])
arr3[x == 1,3]#整数
Out[48]: array([ 9, 21])
x != 1
Out[49]: array([ True, False, True, False, True, True], dtype=bool)
arr3[~(x == 1)] #实际类似于取反
Out[51]:
array([[ 0, 1, 2, 3, 4, 5],
[12, 13, 14, 15, 16, 17],
[24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35]])
arr3[np.logical_not(x == 1)] #作用于 ~ 相同
Out[53]:
array([[ 0, 1, 2, 3, 4, 5],
[12, 13, 14, 15, 16, 17],
[24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35]])
(x == 1 ) & (x == 4)#和
Out[67]: array([False, False, False, False, False, False], dtype=bool)
(x==1)|(x==4)#或
Out[68]: array([False, True, False, True, True, False], dtype=bool)
arr3[(x==1)|(x==4)]#布尔索引
Out[71]:
array([[ 6, 7, 8, 9, 10, 11],
[18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29]])
arr5 = np.random.randn(4,4)#randn返回一个服从标准正态分布的数组。
arr5
Out[77]:
array([[-0.64670829, 1.53428435, 0.20585387, 0.42680995],
[-0.63504514, 0.54542881, -0.82163028, -0.89835051],
[-0.66770299, 0.22617913, 0.16358189, -0.75074314],
[-0.25439447, -0.96135628, -0.10552532, -1.06962358]])
arr5[arr5 > 0] = 10
arr5
Out[80]:
array([[ -0.64670829, 10. , 10. , 10. ],
[ -0.63504514, 10. , -0.82163028, -0.89835051],
[ -0.66770299, 10. , 10. , -0.75074314],
arr6 = np.empty((8,4))# 创建新数组,只分配内存空间,不填充值
for i in range(8):#给每一行赋值
arr6[i] = i
arr6
Out[5]:
array([[ 0., 0., 0., 0.],
[ 1., 1., 1., 1.],
[ 2., 2., 2., 2.],
[ 3., 3., 3., 3.],
[ 4., 4., 4., 4.],
[ 5., 5., 5., 5.],
[ 6., 6., 6., 6.],
[ 7., 7., 7., 7.]])
arr6[[2,6,1,7]] #花式索引
Out[14]:
array([[ 2., 2., 2., 2.],
[ 6., 6., 6., 6.],
[ 1., 1., 1., 1.],
[ 7., 7., 7., 7.]])
arr6[2] Out[15]: array([ 2., 2., 2., 2.]) arr6[6] Out[17]: array([ 6., 6., 6., 6.]) arr6[1] Out[18]: array([ 1., 1., 1., 1.])
arr6[[-2,-6,-1]]
Out[21]:
array([[ 6., 6., 6., 6.],
[ 2., 2., 2., 2.],
[ 7., 7., 7., 7.]])
arr7 = np.arange(35).reshape(5,7)#生成一个5*7的数组
arr7
Out[24]:
array([[ 0, 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]])
arr7[[1,3,2,4],[2,0,6,5]]
Out[27]: array([ 9, 21, 20, 33])
ar = np.arange(27).reshape(3,3,3)
ar
Out[31]:
array([[[ 0, 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]]])
ar[[1,2],[0,1],[2,2]]
Out[32]: array([11, 23])
arr7[[1,3,2,4]][:,[2,0,6,5]]
Out[33]:
array([[ 9, 7, 13, 12],
[23, 21, 27, 26],
[16, 14, 20, 19],
[30, 28, 34, 33]])
arr7[np.ix_([1,3,2,4],[2,0,6,5])]
Out[34]:
array([[ 9, 7, 13, 12],
[23, 21, 27, 26],
[16, 14, 20, 19],
[30, 28, 34, 33]])
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有