numpy 学习总结

numpy 学习总结

作者:csj
更新时间:01.09

email:59888745@qq.com

说明:因内容较多,会不断更新 xxx学习总结;

回主目录:2017 年学习记录和总结


#生成数组/使用astype/取值和赋值/ 数学运算 / 内置的创建数组的函数/ 文件输入输出 # Numpy是Python语言的一个library numpy # Numpy主要支持矩阵操作和运算 # Numpy非常高效,core代码由C语言写成 # pandas也是基于Numpy构建的一个library # 现在比较流行的机器学习框架(例如Tensorflow/PyTorch等等),语法都与Numpy比较接近 import numpy as np ## 数组简介和数组的构造(ndarray) ##生成数组时可以指定数据类型,如果不指定numpy会自动匹配合适的类型 # np1 = np.array([1,2,3],datetype=np.float64) #np1.datatype ##使用astype复制数组并转换数据类型 # np1 = np.array([1,2,3]) #np2=np1.astype(np.float64) ##使用astype将float转换为int时小数部分被舍弃 # np1 = np.array([1.2,2.1,3.3]) #np2_int=np1.astype(np.int) ##Array indexing/数组取值和赋值 在两个维度上分别按照[:2]和[1:3]进行切片,取需要的部分 # a =np.array([[1,2,3],[4,5,6]]) # b =a[:2,1:3] #row,clo # b ##用dtype来看numpy数组中元素的类型: #b.dtype ##数组取值和赋值 # np1 = np.array([1,2,3]) # np1 = np.array([1,2,3],datetype=np.float64) #np1.datatype # np1.shape # np1[0] # np2=np.array([[1,2,3],[4,5,6]]) # np2 # np2[0,1] ##内置的创建数组的函数 # np1 = np.zeros((3,3)) # np1 # np2 = np.ones((3,3)) # np2 # np3=np.full((3,3),0) # np3 # np4=np.eye(3,3) # 对角矩阵(对角元素为1) # np4 # np5=np.random.random((3,3)) # 3row,3 col矩阵 # np5 # np6=np.empty((2,3,3)) # 2 ge 3row,3 col矩阵 # np6 # np7=np.arange(15) #arrar 0--14 # np7 ## 数学运算 #x = np.array([[1,2,3],[4,5,6]],dtype=np.int32) #y = np.array([[1,1,1],[1,1,1]],dtype=np.int32) # z =x+y # z=np.add(x,y) #z =x-y # z=np.subtract(x,y) # z # z=x / y #np.divide(x,y) # z # z=x * y #np.multiply(x,y) # z # z=np.sqrt(x) # z # v=np.array([1,2]) # m=np.array([3,4]) # k= v.dot(m) #求向量内积np.dot(v,m) # k # v=np.array([1,2]) # m=np.array([3,4]) # k= v.dot(m) #矩阵的乘法 # k ##转置和数学公式一样,1维的vector转置还是自己 # x.T # arr = np.arange(16).reshape((2, 2, 4)) # [[[ 0 1 2 3] # [ 4 5 6 7]] # [[ 8 9 10 11] # [12 13 14 15]]] # print(arr.transpose((1,0,2))) # [[[ 0 1 2 3] # [ 8 9 10 11]] # [[ 4 5 6 7] # [12 13 14 15]]] # print(arr.swapaxes(1,2)) # [[[ 0 4] # [ 1 5] # [ 2 6] # [ 3 7]] # [[ 8 12] # [ 9 13] # [10 14] # [11 15]]] #x = np.array([[1,2],[3,4]]) #print(np.sum(x)) # 数组/矩阵中所有元素求和; prints "10" #print(np.sum(x, axis=0)) # 按行去求和; prints "[4 6]" #print(np.sum(x, axis=1)) # 按列去求和; prints "[3 7]" ## broadcasting 逐元素运算了 ##给x的每一行都逐元素加上一个向量,然后生成y ## 逻辑运算 # x_arr = np.array([1.1, 1.2, 1.3, 1.4, 1.5]) # y_arr = np.array([2.1, 2.2, 2.3, 2.4, 2.5]) # cond = np.array([True, False, True, True, False]) print(np.where(cond, x_arr, y_arr)) # is true get x col,is false get x col value ## 数组高级操作 ##numpy可以很容易地把一维数组转成二维数组,三维数组。 # arr = np.arange(8) # arr # print("(4,2):", arr.reshape((4,2))) # print("(2,2,2):", arr.reshape((2,2,2))) ## ar.ravel() #高维数组可以用ravel来拉平一维数组 ##连接两个二维数组 np.concatenate #np.concatenate([arr1, arr2], axis = 0)) # 按行连接 #np.concatenate([arr1, arr2], axis = 1)) # 按列连接 ##拆分数组 first, second, third = np.split(arr, [1,3], axis = 0) #按row 拆分 first, second, third = np.split(arr, [1,3], axis = 1) #按col 拆分 ## r_ 用于按行堆叠 相当于row append() np.r_[arr1, arr2] ## c_用于按列堆叠 相当于col append() np.c_[np.r_[arr1, arr2], arr] ## 按元素重复 arr = np.arange(3) print(arr.repeat(3)) print(arr.repeat([2,3,4])) [0 0 0 1 1 1 2 2 2] [0 0 1 1 1 2 2 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值