V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  necomancer  ›  全部回复第 4 页 / 共 31 页
回复总数  618
1  2  3  4  5  6  7  8  9  10 ... 31  
2022-03-05 16:16:28 +08:00
回复了 pppguest3962 创建的主题 Python os.walk 历遍文件按顺序的问题...
for f in sorted(files, key=lambda x: int(x.replace('_log.txt', ''))):
2022-03-04 04:17:39 +08:00
回复了 CookCoder 创建的主题 程序员 斐波那契数列 n = 9292 的结果是什么?
In[2]:= Fibonacci[9292]

Out[3]= 36615772462226778497854272068347456903203535721576563305001882\
4446808971505522682252557462388869487429215147859670048443557030510924\
2313638033416669900444112247937728056211966758992460916419400444853615\
0659995426159958705401822049236361283380030364021954972693189793054990\
6755541787721845184132515014730718340789844257461094023669363764925901\
6140512151236060436731993551961323374694640088413329540217958532844994\
6021273729864624801649860858997392396829447879954242712774677453828896\
1654341048857935441878207228426883065999292881549658263447447546725460\
1183355700504643184963095650659016150303753725509080657414720402415839\
2279674457694234096817291978625827299718248723889062148394904123612383\
8755719810784487707901717432096035328612595568604179756660091008942882\
4579522915583067121845203670580431109038026031805366693865811657549114\
6451800292235506843706203859421399525135962129895729017175669910289503\
9164133931355135824951376885398355592136531493074426906052845318085318\
1277008706114560211720676164926069583198482669740034992505014190676786\
1826193562982886149731745127900366793891334956005215747258441299727424\
3067473691667279262508464102799073324973945932644031301367264984825431\
5756846997118764723139178365862765173488978551301801196364660097159749\
2165058128156102400945704343883305010014902608294939820797741099763137\
9586795329323235044514114098601714461528505657129718977557957794347601\
7486485426114739433921822640390808840316534298381708300360202292556716\
2756960501161791462185991020606417837285106207003686110205223085088050\
6635426798303144743970873843083081229936959093803928806387360717509525\
3952963248468206808754647017090147700831859035388796576278194027465866\
1016159406917289941299321202063907398141415112260498823238868612459402\
5244669760768036285301069483216818980323500251537269509976571417468577\
6789816323408545017065365758342146429980816094007713959447619038393467\
627366903822647919125618219011528539949951357869642550538579

-_-能调接口吗? Wolfram engine 永远滴神!(手动狗头
2022-03-04 02:20:17 +08:00
回复了 LeeReamond 创建的主题 Python numpy 对二维数组按某行或某列排序问题
1. 按行排列,用 argsort 以第一行排的话 a[:, np.argsort(a[0])]
2. 按列排行,用 argsort 以第二列排的话 a[np.argsort(a.T[1]),:]
3. 逆序排序好像挺反人类的,arr[::-1].sort() 会原位逆序排序(即 id(arr) 和先 arr[::-1].sort()再 id(arr) 会一样)。但如果用 argsort,得 np.argsort(a[0])[::-1]
2022-02-22 03:11:21 +08:00
回复了 huzhikuizainali 创建的主题 数学 请问这个向量求导的结果是怎么得到的?
1. 说分枝都属微分几何吧。
2. 我做分子模拟的。用英语搜问题。很多专有名词不像汉语需要翻译时创造,而是在英语中自然而然的,毕竟近现代学科发展通用英语。你试试谷歌一下 derivative of vectors ,然后优先看带 edu 域名的结果,或者 math stack exchange ,或者 wikipedia ,一般就够了。
2022-02-21 18:06:10 +08:00
回复了 huzhikuizainali 创建的主题 数学 两个向量之间的相关系数如何定义?
你这是两串数的关联性,看程序应该是 Pearson 相关系数,样本是 1 维样本,和向量有啥关系?
2022-02-21 17:59:43 +08:00
回复了 DuDuDu0o0 创建的主题 数学 使用泊松分布计算和概率直接相乘有什么区别
不是要么下要么不下,而是要么下 50 年大雨要么不下 50 年的大雨
2022-02-21 17:54:29 +08:00
回复了 DuDuDu0o0 创建的主题 数学 使用泊松分布计算和概率直接相乘有什么区别
1/50 1/50 是如果按照一年就下一场雨,要么下要么不下,就是扔一个超有偏硬币 1:49 ,扔两次,连续扔出两个正面的概率

用柏松分布的意思是,接下来的两年(单位时间内)会发生很多雨,但是其中有种大雨( 50 年一遇,或者 1 年 1/50 遇,或者 2 年 1/25 遇)在单位时间(两年内)发生 2 次的概率
2022-02-21 17:43:03 +08:00
回复了 huzhikuizainali 创建的主题 数学 请问这个向量求导的结果是怎么得到的?
至于对向量求导,也是基本定义,一个标量场(输入向量,输出数字)的函数,f(x) = y ,x=(x1, x2...),则 f'(x)定义为向量
(f(x1,x2,...)'x1, f(x1,x2...)'x2, f'x3, f'x4....)
如果
f(x)是一个向量场 f(x1,x2,...) = (y1,y2,...)
则 f'x 是一个二阶矩阵
y1'x1 y1'x2,...
y2'x1, y2'x2...
也就是对向量求导需要对每一项求导,所以 xTA x 对 x 求导就是一个标量场对向量求导,需要对 x 每一项分别求导,所以需要引入新的下标 k ,(xi Aij xj)'(xk)
这些属于向量微积分,张量代数的基础知识,如果你不想完整学这些,就熟悉一下 einstein summation ,kronecker delta 然后逐项手写,实在不行就写个二阶矩阵然后逐项写,熟悉一下这方面就没问题了,学完数学是 overkill 的
2022-02-21 17:35:12 +08:00
回复了 huzhikuizainali 创建的主题 数学 请问这个向量求导的结果是怎么得到的?
先熟悉 einstein summation notation 和 Kronecker delta ,写开一项一项求,然后合并就行了,举个例子:
矩阵乘法:A=Aij, x=xi
xT A = xi Aij = Aij xi
A x = Aij xj = xj Aij
AT x= Aji xj = xj Aji
比如 xTAx = xi Aij xj 对 xk 求导,根据乘法求导法则 ( f(x)g(x)' = f'g+fg') 等于 xi'(xk) Aij xj + xi Aij xj'(xk),因为 xi'(xk) = delta_ik ,同理 xj'(xk)=delta_jk ,所以 delta_ik Aij xj + xi Aij delta_jk = Akj xj + xi Aik ,对加和标的选择是任意的(加和可以任意换序),所以 Akj xj = Aki xi ,所以原式=Aki xi + xi Aik = (Aik+Aki)xi = (A+AT)x ,如果再不能理解就写个 2 阶矩阵 a11 a12 a21 a22 和向量 x1 x2 ,自己试试
2022-02-06 23:15:23 +08:00
回复了 cloudhuang 创建的主题 硬件 挑个笔记本有点难啊
thinkpad x1c ?好像有 4k/2k ,都是集显,i7-1185G7
2022-01-31 06:38:39 +08:00
回复了 acone2003 创建的主题 Python 问一个数据快速离散化的问题
@acone2003 新年快乐!
会,这个是我脑残……这个方法大概就是暴力循环
for f in features:
....for val in f:
........for l, r, val
这样,使用 numpy 的索引大概是这个计算量(按大小判定)的两倍,但是 numpy 的各种操作非常快。我觉得这个问题可以通过边界问题搞定,例如 NBins = [a.min(), 0.3, ...., np.inf],然后 vals 减掉一个值 V ,使所有的 vals 都小于 a.min(),即 vals-V < a.min(),然后替换完以后 a = a+V ,这个方法在数组大了以后会比循环快一些,小数组和循环没啥区别。

不过根据索引也许有个简单的方法,但是 binsize 如果非常不均匀可能需要非常小的 binsize ,你这个箱体 binsize=0.1 是刚好的,先令 NBins=np.array([0.3, ...7.6]),我觉得所以
a = np.asarray(a/binsize, dtype=np.int64)
然后生成新的 NBins:
nvals = np.diff(np.array(NBins/binsize, dtype=np.int64), prepend=0))
r = np.concatenate([ [val] * n for val, n in zip(vals, nvals)])
这里 r 会生成 2 个 3.5 ,52 个 7.8,...
然后处理边界
a[a<int(NBins[0]/0.1)] = len(r)
a[a>int(NBins[-1]/0.1)] = len(r)+1
r = np.append(r, left_bound_val)
r = np.append(r, right_bound_val)
然后 r[a] 就是结果。这样的计算量是最小的。不过需要注意两点,一是 NBins 里的值不总大于 0 ,二是很小 binsize 以及变化很急剧的 NBins 会导致一个巨长的数组 r ,也会很麻烦。不过这些可以通过线性变换你的样本和 NBins 一类的方法解决,就看具体情况了。
2022-01-29 18:18:03 +08:00
回复了 acone2003 创建的主题 Python 问一个数据快速离散化的问题
可以给 NBins 加上左边界然后用 for:
vals = [3.5, 7.8, ...]
NBins = [-np.inf, 0.3, 5.4..., np.inf]
for l, r, val in zip(NBins[:-1], NBins[1:], vals):
....a[np.logical_and(a > l, a< r)] = val
2022-01-29 18:15:05 +08:00
回复了 acone2003 创建的主题 Python 问一个数据快速离散化的问题
用 numpy.array (pandas.DataFrame)?
a[a<0.3] =3.5
a[np.logical_and(a < 5.4, a > 0.3)] = 7.8
2022-01-18 15:34:32 +08:00
回复了 spongebobsun 创建的主题 Android 求可插卡的平板推荐
@spongebobsun ipad 有蜂窝版,不过确实不能打电话收短信,但是流量卡微信是可以随时打接的吧。不过具体还是要看老人使用,如果碰到到处弹广告的应用大多数老人是真处理不好。这点苹果还是省心。
2022-01-17 23:02:40 +08:00
回复了 spongebobsun 创建的主题 Android 求可插卡的平板推荐
ipad 吧,省很多麻烦。老年人的话 android 产品很容易搞很多广告以及莫名其妙安装一堆 app
2022-01-10 01:19:44 +08:00
回复了 lozzow 创建的主题 Python 问一个删除元素的问题,要求要求速度快
……能 tm 删帖就好了,我是傻逼……
2022-01-10 01:18:22 +08:00
回复了 lozzow 创建的主题 Python 问一个删除元素的问题,要求要求速度快
对不起我还在脑残中……按照你的思路:
def test(a):
....a = a - np.diag(np.ones(a.shape[0])) # 主元不参与比较
....ind = np.sum(a >= 0.5, axis=0) # 每个节点大于 0.5 的计数
....g = a >= 0.5 # 节点对是否大于 0.5
....drops = []
....while (ind > 0).any():
........i_drop = np.argmax(ind)
........ind = ind - g[i_drop] # 剩下计数减掉被删掉的节点(大于 0.5 则-1 ,否则-0 )
........ind[i_drop] = -1 # 每次删掉计数最大的
........drops.append(i_drop)
....ret = np.delete(a, drops, axis=0)
....ret = np.delete(ret, drops, axis=1)
....return ret, drops
这个很快。几万也行。
2022-01-10 01:02:32 +08:00
回复了 lozzow 创建的主题 Python 问一个删除元素的问题,要求要求速度快
更正一下,这个对节点数好像是 O(N^3),很蠢了……4000 节点需要 36s ,10000 节点应该是 560s ,2 万节点就得一小时+,几万节点的话可能还是不合适。
2022-01-10 00:59:57 +08:00
回复了 lozzow 创建的主题 Python 问一个删除元素的问题,要求要求速度快
按照楼主的思路:
ret = a - np.diag(np.ones(a.shape[0])) # 主元不参与比较
drops = []
idx = np.arange(a.shape[0])
while (ret>=0.5).any():
....i_drop = np.argmax(np.sum(ret > 0.5, axis=0))
....drops.append(idx[i_drop])
....ret = np.delete(ret, i_drop, axis=0)
....ret = np.delete(ret, i_drop, axis=1)
....idx = np.delete(idx, i_drop)
抱歉,应该换算一下 index ,这样 drops 最后给出的就是应该被删除的元素编号,ret 最后是一个都小于 0.5 的矩阵。
2022-01-10 00:57:41 +08:00
回复了 lozzow 创建的主题 Python 问一个删除元素的问题,要求要求速度快
按照楼主的思路:
ret = a - np.diag(np.ones(a.shape[0])) # 主元不参与比较
drops = []
while (ret>=0.5).any():
....i_drop = np.argmax(np.sum(ret > 0.5, axis=0))
....drops.append(i_drop)
....ret = np.delete(ret, i_drop, axis=0)
....ret = np.delete(ret, i_drop, axis=1)
我试了试 10000x10000 的随机数组,粗略估计一下可能需要 4000s+,但 1000x1000 还是挺快的,大约 0.5s ,也就是能容纳 10^3 的节点数,几万个节点估计还是扯淡
1  2  3  4  5  6  7  8  9  10 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5383 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 08:41 · PVG 16:41 · LAX 01:41 · JFK 04:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.