1.创建数组
np.array([1,2,3,4,5]) # 创建数组
np.array((1,2,3,4,5)) # 创建元组
np.array(range(10)) # 迭代对象
np.array([i**2 for i in range(10)]) # 创建迭代器
np.array([[1,2,3],[4,5,6]]) # 二维数组
2. 设置参数类型
a = np.array([1,2,3,4,5])
# 设置数组元素类型
a_f = np.array([1,2,3,4,5],dtype='float')
3.copy的作用
a=np.array([1,2,3,4,5])
new_a=np.array(a)
new_a[0]=10
new_a # 输出10 2 3 4 5
a # 输出1 2 3 4 5
a=np.array([1,2,3,4,5])
new_a=np.array(a,copy=False)
new_a[0]=10
new_a # 输出10 2 3 4 5
a # 输出10 2 3 4 5
4.改变维度
a=np.array([1,2,3])
a.shape # 输出3
b=np.array(a,ndmin=2)
b.shape # 输出(1,3)
5.区间函数
np.arange(10,20,3) # [10 20)之间每隔3个取一个
np.linspace(1,10,10) # [1 10]之间取10个数
np.logspace(1,5,3,base=2) #从2^1 到 2^5,分成三份(默认base为10)
6.数列
# 全0数列
np.zeros((2,2),dtype='int')
# 返回特定形状
np.zero_likes(arr1)
# 全1数列
np.ones((2,3,4)) #分成两块,3行4列
7.查看基本属性
print(b.size) # 查看元素个数
print(b.dtype) # 查看元素类型
b= b.astype(float) # 改变元素类型
8. 切片
##### 一维数组 #####
arr=np.arange(10)
a=arr[2:7] # 从第二个取到第6个
b=arr[2:7:2] # [2,7)之间每隔两个取一个
c=arr[2:] # 从第二个取到最后
d=arr[::-2] # 倒着取,每2个取一个
e=arr[1:-2:2] #从第一个到倒数第二个
##### 二维数组 ####
arr=np.arange(20).reshape(4,5)
a=arr[2] # 取第二行
b=arr[2,2] # 取第二行第二列
c=arr[2:,] # 从第二行取到最后
d=arr[:,1:] # 取所有的行,第1列到最后
e=arr[1:3,1:3] #取1到3行 1到3列
f=arr[ [0,-1],:][:,[0,2,3] ] #先取出0到倒数第一行,在取出0,2,3列
9.高级索引
# 取(0,0)(2,1)(0,2)(2,2)四个点,并构成2*2的矩阵
b=arr[[0,2,0,2,],[0,1,2,2]].reshape(2,2) # 整数索引
# 将所有的奇数改为1
a[a%2!=0]=1 # bool索引
10.广播规则
# 数组a大小为(2, 1, 3)
a = np.arange(6).reshape(2, 1, 3)
print('a:',a)
# 数组b大小为(4, 2)
b = np.arange(8).reshape(4, 2)
print('b:',b)
# 运行报错
a + b
2 1 3
4 2
--------
#不满足运行条件
11.统计函数
#### 求均值 ####
np.mean(m1) # 整体求均值
np.mean(m1,axis=0) # 按列求均值
np.mean(m1,axis=1) # 按行求均值
#### 其他函数 ####
np.sum(m1) #求最大值
np.max(m1,axis=0) #求列的最大值
np.min(m1,axis=1) #求行的最大值
np.std(m1) #求标准差
np.var(m1) #求方差
np.median(m1) #求中位数
12.随机函数
np.random.randn(4,2) # 满足正态分布
np.random.rand(4) # 随机分布
np.random.normal(1,3,(3,2)) #自定义(均值为1,方差为3的)
np.random.randint(10,size=5) #取【0 10)之间的5个整数
13.其他函数
a = np.resize(a,(3,3)) #改为3*3
np.append(a, [[7,8,9]],axis = 0) # 按行添加
np.insert(a,1,[11],axis = 0) # 在第一行添加[11,11,11]
np.delete(a,[0,1],axis=0) # 删除0,1行
np.argwhere(a>1) # 返回对应索引
np.unique(a) # 去重
np.sort(a,axis=0) # 求a按行排序