Skip to content

Instantly share code, notes, and snippets.

@mosdeo
mosdeo / 04_conditional_convolution.py
Created March 9, 2023 09:27
用 NumPy 向量化加速 Python:條件式卷積,變快 250 倍
import numpy as np
import cv2 as cv
import time
# Python 版本: 3.11
# NumPy 版本: 1.24.1
# 日期: 2023-3-9
# 作者: Lin Kao-Yuan 林高遠
# 知乎: www.zhihu.com/people/lin-kao-yuan
# 網站: web.ntnu.edu.tw/~60132057A
# Github: github.com/mosdeo
@mosdeo
mosdeo / 03_color_filter_vectorlize.py
Created March 8, 2023 10:39
用 NumPy 向量化加速 Python:顏色過濾快 200 倍
import numpy as np
import cv2 as cv
import time
# Python 版本: 3.11
# NumPy 版本: 1.24.1
# 日期: 2023-3-8
# 作者: Lin Kao-Yuan 林高遠
# 知乎: www.zhihu.com/people/lin-kao-yuan
# 網站: web.ntnu.edu.tw/~60132057A
# Github: github.com/mosdeo
@mosdeo
mosdeo / 02_remove_element_vectorlize.py
Last active March 8, 2023 08:11
用 NumPy 向量化加速 Python:從3千萬剩男中找出比我高變快 16 倍
import numpy as np
import time
# Python 版本: 3.11
# NumPy 版本: 1.24.1
# 日期: 2023-3-8
# 作者: Lin Kao-Yuan 林高遠
# 知乎: www.zhihu.com/people/lin-kao-yuan
# 網站: web.ntnu.edu.tw/~60132057A
# Github: github.com/mosdeo
@mosdeo
mosdeo / 01_area_vectorlize.py
Last active March 8, 2023 08:00
用 NumPy 向量化加速 Python:千萬級矩形面積計算變快 16~177 倍
import numpy as np
import time
# Python 版本: 3.11
# NumPy 版本: 1.24.1
# 日期: 2023-3-5
# 作者: Lin Kao-Yuan 林高遠
# 知乎: www.zhihu.com/people/lin-kao-yuan
# 網站: web.ntnu.edu.tw/~60132057A
# Github: github.com/mosdeo
import numpy as np
v1 = np.array([100, 50, 20])
p1 = np.array([30, 78, 21])
p2 = np.array([-67, 98, 12])
p1p2 = p2-p1
# 求 v1 與 p1p2 夾角
v1_p1p2_angle = np.arccos(np.dot(v1, p1p2)/(np.linalg.norm(v1)*np.linalg.norm(p1p2)))
@mosdeo
mosdeo / diff_iphone13_band_hk_mo.py
Created September 15, 2021 09:25
根據Apple官網數據,比較iPhone13的hk與mo版頻段是否相同?
# https://www.apple.com/hk/iphone-13/specs/
# https://www.apple.com/mo/iphone-13/specs/
A2628_hk = \
"5G NR (頻段 n1、n2、n3、n5、n7、n8、n12、n20、n25、n28、n30、n38、n40、n41、n48、n66、n77、n78、n79)\
FDD‑LTE (頻段 1、2、3、4、5、7、8、12、13、17、18、19、20、25、26、28、30、32、66)\
TD‑LTE (頻段 34、38、39、40、41、42、46、48)\
UMTS/HSPA+/DC-HSDPA (850、900、1700/2100、1900、2100 MHz)\
GSM/EDGE (850、900、1800、1900 MHz)"
A2628_mo = \
package main
import (
"fmt"
"math"
)
func q(x float64) float64 {
return 1 / (x * math.Pow(1+Ln(x), 0.5))
}
@mosdeo
mosdeo / gist:bdaea4a8a8dbc715b15f78e55ba836d6
Last active November 7, 2019 08:44
Add Two Numbers 第一個通過版本(邊加邊進位)
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
var firstNode *ListNode = new(ListNode)
@mosdeo
mosdeo / Add Two Numbers.go
Created November 7, 2019 06:08
my LeetCode fail in very big number case
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
// Convert ListNodes to Int
@mosdeo
mosdeo / LINQ_GroupBy_Max_Distinct.cs
Created September 27, 2018 06:31
Note: C# DataTable GroupBy().Max() + GroupBy().Distinct()
DataTable rightDt =
dataTable.AsEnumerable()
.GroupBy(row =>
{// 相同經緯度歸納為一組
return new Tuple<double, double>(Convert.ToDouble(row["lat"]), Convert.ToDouble(row["lon"]));
})
.Select(item =>
{
DataRow row = dataTable.NewRow();
row["lat"] = item.Key.Item1;