PythonML

purpose:学习Numpy的基础操作


Numpy及向量化

import numpy as np

1.1创建Array

my_list=[1,2,3]
x=np.array(my_list)
print('列表:',my_list)
print('Array:',x)
列表: [1, 2, 3]
Array: [1 2 3]
x.shape
(3,)
#维度
x.ndim
1
np.array([1,2,3,])-np.array([4,5,6])
array([-3, -3, -3])
#二维数组
m=np.array([[1,2,3],[4,5,6]])
print(m)
print('shape:',m.shape)
[[1 2 3][4 5 6]]
shape: (2, 3)
#生成数组
n=np.arange(0,30,2)
print(n)
[ 0  2  4  6  8 10 12 14 16 18 20 22 24 26 28]
#3x5
n=n.reshape(3,5)
print(n)
[[ 0  2  4  6  8][10 12 14 16 18][20 22 24 26 28]]
print('one:\n',np.ones((3,2))) #生成3x2的全一矩阵
print('zeros:\n',np.zeros((3,2)))#生成3x2的全0矩阵
print('eye:\n',np.eye(3))#生成3x3对角线为1的矩阵 单位矩阵
print('diag:\n',np.diag(my_list))#生成对角线为my_list的矩阵
one:[[1. 1.][1. 1.][1. 1.]]
zeros:[[0. 0.][0. 0.][0. 0.]]
eye:[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]
diag:[[1 0 0][0 2 0][0 0 3]]
#列表中的乘法
print('操作:\n',np.array([1,2,3]*3))
print('repeat:\n',np.repeat([1,2,3],3))
操作:[1 2 3 1 2 3 1 2 3]
repeat:[1 1 1 2 2 2 3 3 3]
p1=np.ones((3,3))
p2=np.arange(9).reshape((3,3))
print(p1)
print(p2)print('纵向相加:\n',np.vstack((p1,p2)))
print('横向相加:\n',np.hstack((p1,p2)))
[[1. 1. 1.][1. 1. 1.][1. 1. 1.]]
[[0 1 2][3 4 5][6 7 8]]
纵向相加:[[1. 1. 1.][1. 1. 1.][1. 1. 1.][0. 1. 2.][3. 4. 5.][6. 7. 8.]]
横向相加:[[1. 1. 1. 0. 1. 2.][1. 1. 1. 3. 4. 5.][1. 1. 1. 6. 7. 8.]]

1.2Array操作

print('p1:\n',p1)
print('p2:\n',p2)print('p1+p2=\n',p1+p2)
print('p1*p2=\n',p1*p2)#对应位置相乘
print('p2^2=\n',p2**2)
print('p1.p2=\n',p1.dot(p2))#矩阵相乘
p1:[[1. 1. 1.][1. 1. 1.][1. 1. 1.]]
p2:[[0 1 2][3 4 5][6 7 8]]
p1+p2=[[1. 2. 3.][4. 5. 6.][7. 8. 9.]]
p1*p2=[[0. 1. 2.][3. 4. 5.][6. 7. 8.]]
p2^2=[[ 0  1  4][ 9 16 25][36 49 64]]
p1.p2=[[ 9. 12. 15.][ 9. 12. 15.][ 9. 12. 15.]]
p3=np.arange(6).reshape((2,3))
print(p3)
#转化为行向量
print('行向量:\n',p3.reshape(1,-1))
#转化为列向量
print('列向量:\n',p3.reshape(-1,1))
[[0 1 2][3 4 5]]
行向量:[[0 1 2 3 4 5]]
列向量:[[0][1][2][3][4][5]]
#常见的计算
a=np.array([-4,-2,1,3,5])
print(a)
print('sum:',a.sum())
print('min:',a.min())
print('max:',a.max())
print('mean:',a.mean())
print('std:',a.std())
print('argmax:',a.argmax())#返回最大值的位置
print('argmin:',a.argmin())#返回最小值的位置
[-4 -2  1  3  5]
sum: 3
min: -4
max: 5
mean: 0.6
std: 3.2619012860600183
argmax: 4
argmin: 0

1.3索引与切片

#一维
s=np.arange(13)**2
print('s: ',s)
print('s[0]: ',s[0])
print('s[4]: ',s[4])
print('s[0:3]: ',s[0:3])
print('s[[0,2,4]]: ',s[[0,2,4]]) #间断型的索引值
s:  [  0   1   4   9  16  25  36  49  64  81 100 121 144]
s[0]:  0
s[4]:  16
s[0:3]:  [0 1 4]
s[[0,2,4]]:  [ 0  4 16]
#二维
r=np.arange(36).reshape((6,6))
print(r)
#>30的数据输出
print('r>30:\n',r[r>30])
[[ 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]]
r>30:[31 32 33 34 35]
#copy()操作
r2=r[:3,:3]#0-2行 0-2列的数据
print(r2)
r2[:]=0
print(r)#影响了r
r3=r.copy()
r3[:]=10
print(r)
[[0 0 0][0 0 0][0 0 0]]
[[ 0  0  0  3  4  5][ 0  0  0  9 10 11][ 0  0  0 15 16 17][18 19 20 21 22 23][24 25 26 27 28 29][30 31 32 33 34 35]]
[[ 0  0  0  3  4  5][ 0  0  0  9 10 11][ 0  0  0 15 16 17][18 19 20 21 22 23][24 25 26 27 28 29][30 31 32 33 34 35]]

1.4遍历Array

t=np.random.randint(0,10,(4,3))
print(t)
[[6 7 7][5 0 1][3 7 7][4 6 2]]
for row in t:print(row)
[6 7 7]
[5 0 1]
[3 7 7]
[4 6 2]
for i,row in enumerate(t):print('row {} is {} '.format(i,row))
row 0 is [6 7 7]
row 1 is [5 0 1]
row 2 is [3 7 7]
row 3 is [4 6 2]


lect01_codes02_numpy相关推荐

最新文章

  1. mysql和oracle冲突吗_三分钟带你分清MySQL 和Oracle之间的误区
  2. SAP MM初阶之事务代码MIGO界面里的HOLD
  3. supervisor 守护多个进程_supervisor守护进程管理实操笔记
  4. 用户界面框架jQuery EasyUI示例大全之DataGrid(1/4)
  5. html文字图片同一行,CSS控制图片和文字在同一行显示且对齐的3种方法
  6. python sdk怎么用_如何使用七牛Python SDK写一个同步脚本及使用教程
  7. phpcmsV9 添加内容:如何“增加复选框、下拉菜单”(含案例、截图)- 教程篇
  8. rn项目 假如cocoapods_React Native 如何集成到原生IOS项目中?
  9. 12.2 新特性:锁信息获取之在线删除索引
  10. I/O多路复用——Reactor模式
  11. android system webview diable,FV悬浮球橡皮泥主题
  12. hdu 1712 ACboy needs your help (DP)
  13. 数据分析实战项目:SQL分析淘宝用户行为
  14. 【第三期】电商分布式前沿springboot接口服务之删除和更新-Array-专题视频课程...
  15. Win10 外接显示器,Chrome花屏/视频全屏黑屏解决方法
  16. R语言 dataframe 取指定行列filter 随机取数
  17. 记 游戏测试Month2
  18. java判断200以内的素数_java判断101-200之间的素数并输出
  19. 如何成为一个iOS开发者
  20. - Statement

热门文章

  1. 云计算与大数据处理技术_云计算与大数据处理
  2. 计算机组成原理课程设计(很全面有保障)
  3. 密码学基础:群、环、域概念总结
  4. 基于vue的图片剪裁工具vue-croppe
  5. C语言关系运算符详解
  6. 电力电子与电力传动类毕业论文文献包含哪些?
  7. 使用jmeter进行api接口压力测试
  8. 硬链接、软链接、ln命令
  9. SAXReader解析乱码问题
  10. ios swiftui_ios swiftui中的本地化