摘要:
楔子 我们已经学习了许多 SQL 高级功能,包括空值的处理、连接查询、子查询、集合运算、通用表表达式、高级分组选项、窗口函数等等,这些特性可以帮助我们实现各种复杂的数据分析和报表功能。 从今天开始我们将会进入开发篇的学习,了解如何设计数据库的模式、管理表和操作表中的数据、理解数据库事务、索引、视图以 阅读全文
摘要:
楔子 我们在用pandas处理数据的时候,经常会遇到用其中一列替换另一列的数据。比如A列和B列,对A列中不为空的数据不作处理,对A列中为空的数据使用B列对应的数据进行替换。这一类的需求估计很多人都遇到,当然还有其它更复杂的。 解决这类需求的办法有很多,比如效率不高的apply,或者使用向量化的loc 阅读全文
摘要:
使用窗口函数进行移动分析和累计求和 上一节我们学习了利用 GROUP BY 子句的扩展选项(ROLLUP、CUBE 以及 GROUPING SETS)实现数据的层次统计、交叉汇总以及自定义维度分析等高级功能。 不过,产品和业务对于复杂报表的需求并不仅仅止步于此。例如,如何分析员工在部门内的薪酬排名、 阅读全文
摘要:
楔子 现在网络的安全性已经变得越来越重要,各位程序员在开发过程中或多或少都会遇到公钥、私钥、加密、签名等一些相关名词。这些概念比较杂乱,容易混淆,下面就来梳理一下这部分的内容。 对称加密 在重要的信息的传递过程中,人们总是希望信息不会被偷看、不会被篡改,伪造等。为了达到这个要求人们一直在不断努力着。 阅读全文
摘要:
楔子 有时候DataFrame,我们不一定要保存成文件、或者入数据库,而是希望保存成其它的格式,比如字典、列表、json等等。当然,读取DataFrame也不一定非要从文件、或者数据库,根据现有的数据生成DataFrame也是可以的,那么该怎么做呢?我们来看一下 DataFrame转成python中 阅读全文
摘要:
楔子 在numpy中有一个tensordot方法,尤其在做机器学习的时候会很有用。估计有人看到这个名字,会想到tensorflow,没错tensorflow里面也有tensordot这个函数。这个函数它的作用就是,可以让两个不同维度的数组进行相乘。我们来举个例子: ~~~python import 阅读全文
摘要:
楔子 在 TensorFlow 中,可以给一个 tensor 增加一个维度、删除一个维度,那么在 Numpy 中该怎么呢? 删除维度、增加维度 先来看看如何增加一个维度: import numpy as np arr = np.array([[[1, 2, 3], [2, 3, 4]]]) prin 阅读全文
摘要:
楔子 我们知道python的set对象是可以取交集、并集、差集、对称差集的,但是对于numpy有没有这个方法呢?有时候我们在使用pandas 处理数据的时候,不希望再单独转化为集合再进行处理,而numpy也是支持我们这么做的,下面来看一下。 集合运算 set中的集合运算 set中的集合运算,比较简单 阅读全文
摘要:
楔子 无论使用什么样的开发语言,无论软件运行在何种操作系统上,无论架构采用的是单体应用架构还是分布式微服务架构,只要我们开发复杂的交易型业务系统,必然就有一个困扰诸多开发人员的技术难题无法绕开,那就是事务。 而随着互联网的不断发展,互联网企业的业务在飞速变化,推动着系统架构也在不断地发生变化。总体来 阅读全文
摘要:
楔子 假设有这样的一个场景,你去 B 站面试架构师的职位,面试官让你设计一个计数服务,该服务能够对每个视频的观看数量进行实时的计数统计,或者对某个 UP 主的粉丝、获赞数进行统计等等。 当然很多服务其实都可以抽象成计数服务,比如采集系统、监控系统等等,所以计数问题是一个很普遍的问题。那么面对这样一个 阅读全文