V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  necomancer  ›  全部回复第 24 页 / 共 32 页
回复总数  629
1 ... 16  17  18  19  20  21  22  23  24  25 ... 32  
2018-12-26 09:44:10 +08:00
回复了 youthfire 创建的主题 Python Pandas Dataframe 的 out of bounds 问题
用 get(),如果列有名字则用名字,否则用序号,get 如果没有则返回 None,方便处理。

In [2]: import pandas as pd

In [3]: df = pd.DataFrame(np.random.randn(8, 4))

In [4]: df
Out[4]:
0 1 2 3
0 -0.727670 -0.182557 -0.957270 -0.153352
1 -0.340649 -0.313155 -1.219515 0.082472
2 0.023527 0.496896 0.443117 -0.391405
3 -0.522745 0.879736 -1.358356 0.177883
4 -0.314936 -1.795936 -1.510872 1.039757
5 0.000243 -0.826999 -0.365514 -0.907249
6 0.058694 -0.521912 -0.863121 0.842308
7 0.846951 0.325337 -0.821745 0.111492

In [5]: df.get(0)
Out[5]:
0 -0.727670
1 -0.340649
2 0.023527
3 -0.522745
4 -0.314936
5 0.000243
6 0.058694
7 0.846951
Name: 0, dtype: float64

In [6]: df.get(1)
Out[6]:
0 -0.182557
1 -0.313155
2 0.496896
3 0.879736
4 -1.795936
5 -0.826999
6 -0.521912
7 0.325337
Name: 1, dtype: float64

In [7]: df.get(3)
Out[7]:
0 -0.153352
1 0.082472
2 -0.391405
3 0.177883
4 1.039757
5 -0.907249
6 0.842308
7 0.111492
Name: 3, dtype: float64

In [8]: df.get(4)

In [9]:

或者列有名字:

In [10]: df = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'C', 'D'])

In [11]: df
Out[11]:
A B C D
0 -1.521750 -0.704144 -0.565343 -0.389537
1 -0.634391 0.672338 0.857965 0.294724
2 -0.764034 0.907585 -1.454368 -0.637835
3 -1.218633 -1.473434 1.441891 1.554465
4 -1.100643 -2.303968 -1.788275 -0.382192
5 1.476041 -0.735864 -0.359389 0.896467
6 1.662332 -0.944238 0.308855 -0.013283
7 1.357332 0.529256 1.169877 0.745932

In [12]: df.get('E')

In [13]: df.get('B')
Out[13]:
0 -0.704144
1 0.672338
2 0.907585
3 -1.473434
4 -2.303968
5 -0.735864
6 -0.944238
7 0.529256
Name: B, dtype: float64

实在不行还可以用 try except 吧。
2018-12-25 03:25:38 +08:00
回复了 luren123 创建的主题 游戏 主机购买咨询 PS4 Xbox
先看独占和 R 星。没有独占和 R 星需求的话,建议 xbox x,个人感觉效果好,手柄爽一些。其实非常不推荐主机。买主机之后就发现游戏打折力度不高,FPS 游戏不买键鼠转换会打到想死,据不可靠评测,好像体验也不是很好,不知道 xbox 说官方出了会怎么样。希望楼主抑制住了冲动没入坑……游戏还是买个好点的电脑吧,PC 端的打折力度大,活动多,键鼠操作方便,想加手柄兼容性也高。
2018-12-11 20:07:09 +08:00
回复了 iPhonePKAndroid 创建的主题 Python Python 如何对一组字符串按照不同位置生成
from scipy.special import loggamma
import numpy as np
def p(n, m):
return np.exp(loggamma(n+1)-loggamma(m+1))
2018-12-11 20:04:47 +08:00
回复了 iPhonePKAndroid 创建的主题 Python Python 如何对一组字符串按照不同位置生成
@iPhonePKAndroid
全排列:
from math import gamma
def p(n,m):
return gamma(n)/gamma(m)
2018-12-11 20:02:04 +08:00
回复了 iPhonePKAndroid 创建的主题 Python Python 如何对一组字符串按照不同位置生成
@iPhonePKAndroid 全排列:
def p(n,m):
2018-12-05 12:01:13 +08:00
回复了 cyy564 创建的主题 Python 请教一下 Python 中列表字典清洗数据的问题
@cyy564 我在 #2 已经说了,这个需要先排序。pandas 可以无视顺序。所以数据量小考虑直接 python sorted + itertools.groupby,数据量大一些考虑 pandas.DataFrame.groupby,如果超超超大就考虑 #1 的办法。
2018-12-05 11:28:25 +08:00
回复了 cyy564 创建的主题 Python 请教一下 Python 中列表字典清洗数据的问题
Sorry,

ret = {}
for i in l:
....if not ret.get(i['type']):
........ret[i['type']] = 0
...ret[i['type']] +=1
2018-12-05 11:27:13 +08:00
回复了 cyy564 创建的主题 Python 请教一下 Python 中列表字典清洗数据的问题
@cyy564 百分比很好统计:

ret = {}
for i in l:
....if not ret.get(i['type']):
........ret[i['type']] = 0
...ret.get(i['type']) +=1

基本上在不知道 type 有多少的情况下也能轻松统计
2018-12-05 11:24:39 +08:00
回复了 cyy564 创建的主题 Python 请教一下 Python 中列表字典清洗数据的问题
from itertools import groupby
[ list(g) for c, g in groupby(lst, key=(lambda x : x.get('type'))) ]
2018-12-05 11:24:04 +08:00
回复了 cyy564 创建的主题 Python 请教一下 Python 中列表字典清洗数据的问题
数据少的话:
lst = sorted(l, key=(lambda x : x.get('type')))
ret = [[]]
for prv, nxt in zip(lst[:-1], lst[1:]):
....tmp = ret[-1]
....tmp.append(prv)
....if prv['type']!=nxt['type']:
........ret.append([])
tmp = ret[-1]
tmp.append(t[-1])
然后取 ret 里最多的,或者直接用 groupby
[ list(g) for c, g in groupby(lst, key=(lambda x : x.get('type'))) ]
但是都需要排序。

或者用 pandas:
import pandas as pd
l= [{'name': 'aa', 'type': '游戏'},
{'name': 'cc', 'type': '学习'},
{'name': 'bb', 'type': '游戏'}] # 可以不用考虑顺序

list(pd.DataFrame(l).groupby('type')) 可以搞定,输出是 n 个 categories 的 tuple 的 list

[(分组名 1,分组 1 数据的 dataframe),(分组名 2,分组 2 数据的 dataframe)...],数据大小可以用 dataframe 的 shape 来确定。

In [40]: list(pd.DataFrame(l).groupby('type'))
Out[40]:
[('学习', name type
1 cc 学习), ('游戏', name type
0 aa 游戏
2 bb 游戏)]

In [41]: p=list(pd.DataFrame(l).groupby('type'))[1][1]

In [42]: p.shape
Out[42]: (2, 2)

In [43]: p
Out[43]:
name type
0 aa 游戏
2 bb 游戏

对一定量的数据,pandas 就可以有很高的处理效率了,如果数据量再大,考虑上 #1 的方法吧。
2018-11-30 21:41:25 +08:00
回复了 Hzzone 创建的主题 Python 为什么同样的矩阵乘法, Pytorch 和 Cupy 要比 Numpy 慢?
直接用 * 是矩阵乘法吗……别的不知道,numpy 下是批量相乘吧……

numpy 里 x_cpu.dot(x_cpu) 才是矩阵乘法。
2018-11-29 00:01:16 +08:00
回复了 cunzhen 创建的主题 PHP 怎么让网页处于一直加载中?
我发现很多网站因为有 google 的 js,字体等一系列东西会有一个非常非常长的加载时间……
2018-11-28 11:42:57 +08:00
回复了 aodeng 创建的主题 程序员 做为一个程序员,大家都用什么东西记笔记?
凌美。
2018-11-27 20:50:56 +08:00
回复了 xairsky 创建的主题 Android 想买一部 4000 左右的安卓旗舰,在纠结中,求推荐。
sony xz3
thinkpad X 系列,键盘很爽。
2018-11-12 17:41:50 +08:00
回复了 zynlp 创建的主题 程序员 分享一个算法可视化的网站,
mark
2018-11-11 02:23:40 +08:00
回复了 songdg 创建的主题 Python 请教为什么不相等
一般 numpy 比较的时候用 np.isclose 或者 np.allclose

In [1]: arr = np.array([3.12, 3.43, 3.77, 4.15, 4.57],dtype=np.float32)

In [2]: np.isclose(arr[-1], 4.57)
Out[2]: True

浮点数一般不直接做相等,除非 dtype 也是一样的。python 里的小数一般是 np.float64

In [4]: arr = np.array([3.12, 3.43, 3.77, 4.15, 4.57],dtype=np.float64)

In [5]: arr[-1] == 4.57
Out[5]: True

我记得 numpy 官网文档里提过建议用 np.isclose()
2018-11-08 00:39:03 +08:00
回复了 fox1955 创建的主题 Linux [最效率软件] 平铺式桌面。结论令人震惊!
@Havee 哈哈哈哈
2018-11-08 00:06:56 +08:00
回复了 swordspoet 创建的主题 Python 求解一道关于列表和字典 Python 问题
t = sorted(data, key=(lambda x : (x['a'], x['b'])))
ret = [[]]
for prv, nxt in zip(t[:-1], t[1:]):
....tmp = ret[-1]
....tmp.append(prv)
....if prv['a']!=nxt['a']:
........ret.append([])
tmp = ret[-1]
tmp.append(t[-1])
2018-11-06 15:11:17 +08:00
回复了 Amone 创建的主题 Python 问个 Python 遍历的问题
import uuid
print('%s' % (uuid.uuid4()))

试试。有其他要求请看
help(uuid.uuid1)
help(uuid.uuid3)
help(uuid.uuid4)
help(uuid.uuid5)
1 ... 16  17  18  19  20  21  22  23  24  25 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   964 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 20:13 · PVG 04:13 · LAX 13:13 · JFK 16:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.