➢ 强调通过特征转换的方式得到一组具有明显物理或统计意义的特征➢ 0 码力 |
38 页 |
1.28 MB
| 2 年前 3 ## 静态类型的Python
PYTHON 30th
Lyzh(刘知杭)
## 目录
CONTENTS ➤ 有关类型的概念
使用mypy对Python源代码进行静态分析
代数数据类型
拓展知识
## 关于类型的一些基本概念
有类型不等于有类型系统
PYTHON 30th
动态语言类型化的必要性
## 不久前的一个案例
☀️ ☀️ ☁️
rl = filter(lambda x: HttpResponse(json.dumps(rl), content_type='application/json')
## 类型的概念
CPython定义了PyObject这个结构体作为对象头。
CPython中的类型,是指在对象头中指向类型元信息的指针。
## ●●●
// cpython/include/object.h
#define PyObject_HEAD PyObject CPython有类型,但CPython没有类型系统。这就是CsPython中诸多问题的由来。
## 类型系统是什么?
类型系统(type system)是一种编译期(Compile-time)的类型推导检查规则。
类型系统(type system)的基本目标是防止程序在运行时发生类型错误。当且仅当语言运行时不存在任何形式的类型错误,那么它就是sound的。soundness是类型系统研究的重要目标。 0 码力 |
42 页 |
6.87 MB
| 2 年前 3 ## PyTorch
## 基本数据类型
主讲人:龙良曲
## All is about Tensor
|python|PyTorch|
|---|---|
|Int|IntTensor of size()|
|float|FloatTensor of size()|
|Int array|IntTensor of size \[d1, d2, ...]|
|Float array|FloatTensor 0 码力 |
16 页 |
1.09 MB
| 2 年前 3 概述.....9
4.1 网页脚本.....9
4.2 语言概述.....10
4.2.1 对象.....10
4.3 定义.....12
4.3.1 类型.....12
4.3.2 原语值.....12
4.3.3 对象.....12
4.3.4 构造函数.....12
4.3.5 原型.....12
Undefined 类型.....13
4.3.11 空值.....13
4.3.12 Null 类型.....13
4.3.13 布尔值.....13
4.3.14 Boolean 类型.....13
4.3.15 Boolean 对象.....13
4.3.16 字符串值.....13
4.3.17 String 类型.....14 14
4.3.18 String 对象.....14
4.3.19 数值.....14
4.3.20 Number 类型.....14
4.3.21 Number 对象.....14
4.3.22 Infinity(无穷).....14
4.3.23 NaN.....14
5 记法约定.....15
5.1 语法和词法文法 0 码力 |
58 页 |
563.06 KB
| 2 年前 3 # 现代编程思想 多元组,结构体与枚举类型
Hongbo Zhang
基础数据类型:多元组与结构体
## 回顾:多元组
• 多元组:固定长度的不同类型数据的集合
☐ 定义: $ (\leq $ 表达式 $ \gt $ , $ \leq $ 表达式 $ \gt $ , $ \geq $ )
☐ 类型:(<表达式类型>,<表达式类型>,...)
○ 例如:
■ 身份信息:("Bob" == 2023
• 列表:任意长度的相同类型数据的集合
○ 例如:
■ 字符的序列:Cons('H', Cons('i', Cons('!', Nil)))
Cons : construct 的缩写
## 笛卡尔积
- 一个多元组类型的元素即是每个组成类型的元素构成的有序元素组。集合的笛卡尔积,又称积类型
。例:扑克牌的所有花色: $ \{ $ postal: Int } 通过名称,我们能明确数据的信息以及对应字段的含义
## 结构体的定义
- 结构体的定义形如 struct <结构体名称> { <字段名>: <类型> ; ... }
o struct PersonalInfo { name: String; age: Int}
• 定义结构体的值时,形如 { <字段名>: <值> 0 码力 |
26 页 |
435.86 KB
| 2 年前 3 {
int x = -7 >> 2;
printf("%d\n", x);
}
1
## 位运算 >> 对负数的处理
signed 类型的 >> n 会把最高位复制 n 次。
因为补码的特性,这导致负数 >> 的结果仍是负数。
这样就实现了和 Python 一样的始终向下取整除法。
## 11001010 printf("%d\n", x);
}
-2
## unsigned 类型的位运算 >> 不一样
而 unsigned 类型的 >> n 会不会复制最高位,
只是单纯的位移,这会导致负数的符号位单独被位
移,补码失效,造成结果不对。
unsigned 类型的 >> 会生成 shr 指令,signed 类型的 >> 会生成 sar 指令。
我们需要负方向无限延伸的稀疏数据结果,那就只要 2;
}
bate::timing("main");
return 0;
}
## 使用 int64_t :每个占据 8 字节
• 如果用更大的数据类型,用时会直接提升两倍!
这是因为 i%2 的计算时间,完全隐藏在内存的超高延迟里了。
- 可见,当数据量足够大,计算量却不多时,读写数据量的大小唯一决定着你的性能。
- 特别是并行以后,计算量可以被并行加速,而访存却不行。 0 码力 |
102 页 |
9.50 MB
| 2 年前 3 0 码力 |
50 页 |
2.59 MB
| 1 年前 3 R-Tree:存储空间几何结构
· .....
## 数据结构:二叉树
- 二叉树要么是一棵空树,要么是一个节点;它最多具有两个子树:左子树与右子树。
- 叶节点的两个子树都是空树
• 基于递归枚举类型的定义(本节课默认存储数据为整数)
1. enum IntTree {
2. Node(Int, IntTree, IntTree) // 存储的数据,左子树,右子树
3. Empty 0 码力 |
29 页 |
1015.26 KB
| 2 年前 3 0 码力 |
18 页 |
1.14 MB
| 2 年前 3
|