#numpy 基本索引,切片
print (ar[:4])#:代表从0开始到第n-1个字段
print (ar[::4])# ::代表以步长为4
print (ar[2][2])
print (ar[1:3])#去尾不去头
print (ar[2,2])#类似[2][2]
ar=np.arange(12).reshape(3,4)
print (ar)
a=np.array([True,False,True])
b=np.array([True,True,False,False])
print (a)
print (b)
print (ar[a,:])#是true截取,不是不截,先选择行
print (ar[:,b])
#numpy.random
a=np.random.normal(size=(4,4))#4行4列的正太分布,类似于抛物线,中间最多
b=np.random.rand(4,4)#4行4列的均匀分布的0-1随机浮点数,类似于面积随机
c=np.random.rand(4,4)*100
import numpy as np
ar=np.arange(20)
print (ar[:4])#:代表从0开始到第n-1个字段
print (ar[::4])# ::代表以步长为4
#一维数组和列表无区别
4 [0 1 2 3] [ 0 4 8 12 16]
#二维数组切片
ar=np.arange(16).reshape(4,4)#创建一个4行4列的二维数组
ar
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]])print (ar[2])
print (ar[2][2])
print (ar[1:3])#去尾不去头
print (ar[2,2])#类似[2][2]
print (ar[:1,2:])#去尾不去头,所以第0行,不包括第一行【1,2,3,4】,2:表示索引为2,即第三个数到最后【2 3】
[ 8 9 10 11] 10 [[ 4 5 6 7] [ 8 9 10 11]] 10 [[2 3]]
#三维数组切片
ar=np.arange(27).reshape(3,3,3)#三个三行三列
ar
print (ar[0])#打印第一个三行三列
print ('-------')
print (ar[0][1])#在第一个三行三列中截取第二行
print ('-------')
print (ar[0][1][2])#在第一个三行三列中截取第二行的第三个数
#总结: 凡是切片请自动加1,便于记忆
[[0 1 2] [3 4 5] [6 7 8]] ------- [3 4 5] ------- 5#布尔型索引切片,即代入就可以解决
ar=np.arange(12).reshape(3,4)
print (ar)
a=np.array([True,False,True])
b=np.array([True,True,False,False])
print (a)
print (b)
print (ar[a,:])#是true截取,不是不截,先选择行
print (ar[:,b])
print (ar[ar>4])
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [ True False True] [ True True False False] [[ 0 1 2 3] [ 8 9 10 11]] [[0 1] [4 5] [8 9]] [ 5 6 7 8 9 10 11]#numpy随机数,较为重要
#numpy.random
a=np.random.normal(size=(4,4))#4行4列的正太分布,类似于抛物线,中间最多
b=np.random.rand(4,4)#4行4列的均匀分布的0-1随机浮点数,类似于面积随机
c=np.random.rand(4,4)*100
#随机整数
print (np.random.randint(2))#0-1之间取随机数
print (np.random.randint(2,10))#2-9里面取随机数
print (np.random.randint(2,10,size=(2,5)))#2-9里面取随机数,然后生成2行5列的数组
print (np.random.randint(2))#0-1之间取随机数
print (np.random.randint(2,10))#2-9里面取随机数
print (np.random.randint(2,10,size=(2,5)))#2-9里面取随机数,然后生成2行5列的数组
0 8 [[4 5 2 3 4] [4 7 9 7 9]]