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 2] ##指定axis来重复
print(arr.repeat(2, axis=0))
print(arr.repeat(2, axis=1)) ##一维数组的排序
# arr = np.random.randn(8)
# arr.sort()
# arr
# array([-0.61817891, -0.06058585, -1.35160371, -2.18178411, 0.87576168,
# -1.58531466, -0.69936331, -0.32779743])
# arr2 = np.random.random(8)
# arr2
# array([ 0.12432438, 0.25883333, 0.1822138 , 0.53953672, 0.33821614,
# 0.55960961, 0.6137947 , 0.93829222]) ## 文件输入输出
##读取csv文件作为数组
#arr = np.loadtxt('array_ex.txt', delimiter=',')
##数组文件读写
#np.save('some_array', arr)
#print(np.load('some_array.npy')) ## 多个数组可以一起压缩存储
#rr2 = np.arange(15).reshape(3,5)
#np.savez('array_archive.npz', a=arr, b=arr2) #arch = np.load('array_archive.npz')
#print(arch['a'])
#print(arch['b']) ## random
# a = np.random.rand(2,2)
# print('a:',a)
# b = np.random.random(10)
# print('b:',b)
# c= np.random.randn(10)
# print('c:',c) # a: [[ 0.26212204 0.45755303]
# [ 0.04386303 0.66983097]]
# b: [ 0.42563425 0.95733217 0.72836539 0.23990547 0.10497632 0.16002414
# 0.70969603 0.62574911 0.68678163 0.24185936]
# c: [-1.45631229 0.21994626 -0.69116183 -0.282174 0.7204622 0.71022805
# 0.71147763 0.30575337 1.4860439 -0.56394711] # d = np.random.rand(10,10)
# e = d.max(axis=1)
# f = e.sum(axis =1).reshape(10,1) ##更多的numpy细节和用法可以查看一下官网numpy指南
#http://docs.scipy.org/doc/numpy/reference/
numpy 学习总结的更多相关文章
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- NumPy学习笔记 一
NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- NumPy学习(让数据处理变简单)
NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- (转)Python数据分析之numpy学习
原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...
- Numpy学习1
NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...
随机推荐
- Git 配置(分布式版本控制系统)
1.Mac Git 配置文件 既然已经在系统上安装了 Git,你会想要做几件事来定制你的 Git 环境.每台计算机上只需要配置一次,程序升级时会保留配置信息.你可以在任何时候再次通过运行命令来修改它们 ...
- 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)
黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...
- Axure谷歌浏览器Chrome扩展程序下载及安装方法
对于很多需要设计产品原型的朋友来说,Axure RP Pro可谓是非常方便.好用的一款软件,因为它不仅能绘制出详细的产品构思,也能生成浏览器格式的产品原型.但是如果想把原型拿给客户查看,千万记得给浏览 ...
- ASP.NET 的ClientIDMode属性
在ASP.NET 4.0之前我们总是要为控件的ClientID头疼,比如明明一个叫lblName的Label放在一个叫做grd的GridView里面后,在页面上改Label的ID就变成了诸如grd_c ...
- C#winform实现跑马灯
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- JPA学习笔记(8)——映射一对多关联关系
一对多关联关系 本文有很多和多对一是一样的,因此不会写得非常具体. 有看不懂的.能够參考JPA学习笔记(7)--映射多对一关联关系 Order实体类 package com.jpa.helloworl ...
- SQL 中的 UNION 和UNION ALL 的区别
UNION表示“并”,当用的时候,系统会自动将重复的元组去掉,如果要保留重复元组则就用UNION ALL UNION 会合并重复数据,(由于要合并重复,该操所 隐藏着一个 排序的操作.)UNION A ...
- 转 RabbitMQ 基础概念及 Spring 的配置和使用 推荐好文 举例讲解
从不知道到了解—RabbitMQ 基础概念及 Spring 的配置和使用 原理同上 请求地址:http://localhost:8080/home?type=3&routing_key=myO ...
- 验证码识别 图像降噪 Python (一)
原始图片: 降噪后的图片 实现代码: # coding:utf-8 import sys, os from PIL import Image, ImageDraw # 二值数组 t2val = {} ...
- php分享二十一:mysql语句
一.Join语法概述 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接) RIGHT JOIN(右连接 ...