thautwarm / site-32 Goto Github PK
View Code? Open in Web Editor NEWthautwarm's blog page.
Home Page: https://thautwarm.github.io/Site-32/
thautwarm's blog page.
Home Page: https://thautwarm.github.io/Site-32/
一些极其基本的事实,在reddit与hackner news上司空见惯的需求,却无法被论文引用作为基本的问题背景。这时常让我对学术写作失望透顶。
it has been implemented: https://github.com/qntm/greenery
解决了我三年半前做parser框架的lexer检查问题。
中文生态在这种细节上还是很差劲,有种wikipedia中文的意思。
dlsym(_Py_XXXStruct) is XXX
: _Py_TrueStruct
, _Py_NoneStruct
dereference(dlsym(PyExc_XXX)) is XXX
: PyExc_TypeError
, ...dlsym(XXX) is XXX
when XXX
is a function pointerWin 10 patches for II: https://verokster.blogspot.com/2018/10/heroes-of-might-and-magic-i-iv-gl.html
windows update breaks scoop apps.: use scoop reset *
link
for implementing ocaml-style parametric module.
https://superuser.com/a/1551095:
ffmpeg -y -i input_file.mp4 -c:v libx264 -c:a aac -strict experimental -tune fastdecode -pix_fmt yuv420p -b:a 192k -ar 48000 output_file.mp4
为了用方便debug的语言做全平台开发(包括iOS和Android),实现了TraffyIR.UnityPython。
亮点是用了koka的思路,根据continuation是否存在来编译解释器的asm。做了benchmark,结果 (optimize=true的debug模式) 是非生成器代码比cpython略快(差距10%以内),非生成器比cpython慢一个数量级以内 (从1 yield 到 100_0000 比 cpython慢3倍)。
解释器的IR存在很大性能提升空间,目前每一次执行ir都会动态判断是否存在continuation。
如果不使用"inline threading"而使用字节码解释器,生成器代码会更快一点,但非生成器代码更慢,且不支持.NET native exception,且python try-catch-finally的字节码编译太烧脑,遂使用"inline threading"方案。
目前这点性能开销不是问题。一个有强力IDE支持、可热更新、动态执行、无伤兼容全平台的Python实现,意义重大。
目前TraffyIR.UnityPython 的限制:
不支持Python的一部分“罕见”元方法。例如,对比较操作只支持__eq__
和__lt__
(TODO: 支持__le__? 用户保证 __le__与__eq__和__lt__的相容?),且__lt__
和__eq__
必须返回bool
不支持type
以外的其他的metaclass。但是支持__init_subclass__
,足以应付大部分元编程场景。
不支持NotImplemented
, 包括__ror__
这些元方法
不支持用StopIteration
做迭代终止。for
循环的实现不依赖exception, raise StopIteration
不会引起for loop正常退出,而是跑错误。
不支持raise a from cause
。这主要是为了兼容.NET的native exception
bool
不是整数的子类型,True + 1
报错。这一点python挺折磨人,而不实现bool <: int不仅减小工作量,也让我自己的使用体验更佳。
int
不是任意大整数而是int64
,float
是float32
。这是为了提升性能,顺便和unity交换数据时避免复杂cast。
list.reverse
不是O(1)的。list内部实现是.NET的List,因此reverse是O(n)操作 (TODO: 未来支持双向list实现?)
支持Python丰富的传参模式和参数验证,除了3.8引入的positional only arguments (XXX: TraffyIR.UnityPython基于Python 3.10,但不是所有feature都支持)
yield/await/yield from
不能出现在try-catch语句里,也不能出现在finally语句块里,但可以出现在try-finally语句块里。这是因为try语句实现使用了.NET的try-catch机制,与.NET有同样的限制。
await Task.Yield()
做运行时的特殊处理,行为上等同于yield
但不开启async generator。
async不耦合asyncio,实现正确的coroutine和thread分离机制。用户可以控制event loop,默认event loop被一个Unity根对象的coroutine执行。
wordcount
cannot get searched by word + count
..
在做kaggle入门题的时候发现一些可能和解题没什么关系的数据。
生物信息学中使用机器学习常常使用马修相关系数/MCC来评估分类情况。自然,MCC可以用来衡量两种特征之间的相关性。
在统计、分析数据并精细地进行特征处理时...我发现了一些很有意思的事情。
以下是泰坦尼克号上部分乘客的Fare和SibSp(应该是亲属的意思)以及Parch(应该是旁亲的意思)
的马修相关系数。
下图第i行 是 logical矩阵Fare>=20*i和logical矩阵Parch>0所生成的Confussion Matrix的MCC,可以看到船票Fare越高(也就很可能越有钱。实际上,在考察是否有船舱记录,以及所处甲板层这两个特征时越发能表现出一个事实:Fare越高,越处于一个船上集中的位置,可以合理地预测那里就是“富人区”),身边的旁亲或直亲越少。
[0.43795638726226482,
0.2619448361799338,
0.20425813538877022,
0.13671911262286474,
0.094181397840742032,
0.065715020539933819,
0.029608947499918405,
0.016580839065407627,
0.01117141059788828,
0.01117141059788828,
0.035675294156314569,
0.053894354956480379,
0.071620573247603722,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437,
-0.049731347508180437]
让我们画点图:
Matrix i:
A=Fare>20i
B=Parch>0
TP= (A==1)&(B==1)
TN= (A==0)&(B==0)
...
...
同理对 Fare>20*i - SibSp>0,i为下图行数:
[0.45883805916221237,
0.18746190344064922,
0.18594421244657208,
0.13771691321338442,
0.17033618732810329,
0.1692139259896131,
0.15894442146644297,
0.13968820514084629,
0.12275967352062414,
0.12275967352062414,
0.099782352368843349,
0.13221991536783961,
0.11278685883575543,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913,
0.014139301635034913]
同样地画点图:
Matrix i:
A=Fare>20i
B=SibSp>0
TP= (A==1)&(B==1)
TN= (A==0)&(B==0)
...
...
我们能否从中获得一些有用的信息?也许和这道题没什么关系,但是数据本身是有价值的,对吧?
“富有的人很孤独。”
“富有的人能支配有很多的自由时间。”
—————————————————————————————————————————————
以上数据来自Kaggle平台Palyground题组...
请勿转载或用于商业用途,尊重死者。
注:今天做一个东西要把中文写入文档时发现并解决了一个问题。写一下博文,自己也加深理解。在py2里面字符编码特别麻烦,所以专门拿出来说一下。
mode 参数:'utf-8','gbk','ascii'等
str.encode(mode) 将字符串按照mode模式编码
str.decode(mode) 将字符串按照mode模式解码
例如我在py2中输入一个带有中文的字符串 '赵王' ,那么这个时候它是按照ascii格式编码的
s='赵王'
则我们在shell中输入s
In[.] s='赵王'
In[.] s
Out[.] '\xe8\xb5\xb5\xe7\x8e\x8b\xe5\xae\xa3'
In[.] s.decode('utf-8')
Out[.] u'\u8d75\u738b\u5ba3'
我们知道通常的英文是按ascii码编码格式的(每个ascii码是\x00到\xff(0~255)),而对于一个汉字,它在被解密(解码,decode)后通常是一个unicode形式,即\u0000~\uffff,这个时候要能正确地输出汉字,是不应将汉字拆成两个字节ascii码输出的。但是问题是,在py2中,它是不支持unicode的,所以会出现一些问题:
我们的file.write(str)函数,将字符串str写入文件时,必须要求str是ascii码形式。
所以我们在py2中抓取了一个含中文的unicode编码的字符串时,应该将它编码为ascii格式,但是我们的函数str.encode不知道它初始是什么格式,所以需要你输入它初始的格式unicode。
即对于一个要输入文档的unicode字符串,我们需要这样做s=s.encode('utf8')(汉字通常是utf和gbk 一系列blabla之类格式编码的),然后file.write(s)就行了。
需要再提的是,对于被转化为ascii模式的字符串,我们可能无法从中发现中文的存在,需要对它进行解码(decode)。而你的print函数帮了你这个忙,所以你可能会误以为unicode编码是没有卵用的。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.