我在这里读到matplotlib擅长处理大型数据集.我正在编写一个数据处理应用程序并将matplotlib图形嵌入到wx中,并且发现matplotlib在处理大量数据时都是可怕的,无论是速度还是内存方面.有没有人知道一种方法来加速(减少内存占用)matplotlib而不是下采样输入?
为了说明matplotlib与内存有多糟糕,请考虑以下代码:
import pylab
import numpy
a = numpy.arange(int(1e7)) # only 10,000,000 32-bit integers (~40 Mb in memory)
# watch your system memory now...
pylab.plot(a) # this uses over 230 ADDITIONAL Mb of memory
Run Code Online (Sandbox Code Playgroud) 我正在学习一些AI课程,并且已经学习了一些我想要实验的基本算法.通过Kaggle,我可以访问包含大量真实数据的多个数据集,Kaggle主持数据分析竞赛.
我曾尝试参加几个比赛以提高我的机器学习技能,但一直无法找到一种好方法来访问我的代码中的数据.Kaggle为csv格式的每个竞赛提供了一个50-200mb的大型数据文件.
在我的代码中加载和使用这些表的最佳方法是什么?我的第一直觉是使用数据库,所以我尝试将csv加载到sqlite中的单个数据库,但这给我的计算机带来了巨大的负担,在提交期间,我的计算机崩溃是很常见的.接下来,我尝试在共享主机上使用mysql服务器,但对它进行查询需要花费很长时间,这使得我的分析代码非常慢.另外,我恐怕会超出我的带宽.
到目前为止,在我的课程中,我的教师通常会清理数据并为我们提供可以完全加载到RAM中的可管理数据集.显然,这对我目前的兴趣是不可能的.请建议我该怎么做.我目前正在使用4GB的macbook和4gb ram以及一个双核2.1Ghz cpu.
顺便说一句,我希望在Python中进行大量的分析,因为我最了解这种语言.我想要一个允许我用这种语言完成所有或几乎所有编码的解决方案.
有没有人有使用r/python与存储在固态硬盘中的数据的经验.如果您主要进行读取操作,理论上这应该会显着改善大型数据集的加载时间.我想知道这是否属实,是否值得投资SSD以提高数据密集型应用程序的IO速率.
使用Google Analytics跟踪在单页网页应用中跟踪"网页浏览量"的最佳(最实用)方法是什么?trackevent有四个参数:CATEGORY,ACTION,LABEL,VALUE.最后两个是可选的.我应该将哪个字段用于视图标题?单页Web应用程序中的"视图"对应于普通Web应用程序中的页面.
我可以看到两个选项:
1) trackevent('Navigation', 'View title');
2) trackevent('Navigation', 'Click', '', 'View title');
trackevent('Navigation', 'Redirect', '', 'View title');
Run Code Online (Sandbox Code Playgroud)
当然,人们可以做任何一种,但在分析Google Analytics中的数据时哪种选择最好?
javascript google-analytics data-analysis pageviews single-page-application
我使用lambda跟随函数用NaN替换了缺少的值:
data = data.applymap(lambda x: np.nan if isinstance(x, basestring) and x.isspace() else x)
,数据是我正在处理的数据帧.
之后使用seaborn,我尝试绘制其中一个属性,使用seaborn.distplot进行alcconsumption,如下所示:
seaborn.distplot(data['alcconsumption'],hist=True,bins=100)
plt.xlabel('AlcoholConsumption')
plt.ylabel('Frequency(normalized 0->1)')
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
AttributeError: max must be larger than min in range parameter.
Run Code Online (Sandbox Code Playgroud) 在进行数据分析时,有时需要将值重新编码为因子以进行组分析。我想保持因子的顺序与case_when. 在这种情况下,顺序应该是"Excellent" "Good" "Fail"。我怎样才能做到这一点而不像在levels=c('Excellent', 'Good', 'Fail')?
非常感谢。
library(dplyr, warn.conflicts = FALSE)
set.seed(1234)
score <- runif(100, min = 0, max = 100)
Performance <- function(x) {
case_when(
is.na(x) ~ NA_character_,
x > 80 ~ 'Excellent',
x > 50 ~ 'Good',
TRUE ~ 'Fail'
) %>% factor(levels=c('Excellent', 'Good', 'Fail'))
}
performance <- Performance(score)
levels(performance)
#> [1] "Excellent" "Good" "Fail"
table(performance)
#> performance
#> Excellent Good Fail
#> 15 30 55
Run Code Online (Sandbox Code Playgroud)
最后,我想出了一个解决方案。对于那些有兴趣的人,这是我的解决方案。我写了一个函数fct_case_when(假装是 中的函数forcats …
我在数据清理中处理最多的事情之一是缺少值.R使用其"NA"缺失数据标签处理此井.在python中,似乎我将不得不处理掩盖的数组,这些数组似乎是一个很大的痛苦,并且似乎没有很好的记录.有关在Python中简化此过程的任何建议吗?这成为了进入Python进行数据分析的一个突破.谢谢
更新显然已经有一段时间了,因为我已经查看了numpy.ma模块中的方法.似乎至少基本分析函数可用于掩码数组,并且提供的示例帮助我了解如何创建掩码数组(感谢作者).我想看看Python中的一些较新的统计方法(在今年的GSoC中开发)是否包含了这方面,至少是完整的案例分析.
给定这个3D条形图示例代码,您如何将x轴中的数值数据转换为格式化的日期/时间字符串?我试图使用ax.xaxis_date()函数但没有成功.我也尝试使用plot_date(),它似乎不适用于3D条形图.以下是示例代码的修改版本,用于说明我要执行的操作:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.dates as dates
dates = [dates.date2num(datetime.datetime(2009,3,12)),
dates.date2num(datetime.datetime(2009,6,9)),
dates.date2num(datetime.datetime(2010,1,1)),
#etc...
]
fig = plt.figure()
ax = Axes3D(fig)
for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]):
xs = np.array(dates)
ys = np.random.rand(20)
ax.bar(xs, ys, zs=z, zdir='y', color=c, alpha=0.8)
ax.set_xlabel('Date & Time')
ax.set_ylabel('Series')
ax.set_zlabel('Amount')
plt.show()
Run Code Online (Sandbox Code Playgroud)
alt text http://matplotlib.sourceforge.net/_images/bars3d_demo1.png
今天,我的数据分析例程将如下所示:使用R,Julia或Python进行繁重的工作,然后使用JavaScript在Web中显示它(例如,使用D3.js).
我最初关注JS的主要是数据可视化/与分析的最终产品的交互,所以我开始研究它.但我想知道:JS库是否专注于数据分析(使用数据框架的概念进行数据处理,统计模型的实现),因此直接在JavaScript中完成一些繁重的工作是可行的?
如何反转pandas.dataframe中行的顺序?
我到处看,唯一的事情人们都在谈论的排序列,扭转了顺序列 ...
我想要的很简单:
如果我的DataFrame看起来像这样:
A B C
------------------
LOVE IS ALL
THAT MAT TERS
Run Code Online (Sandbox Code Playgroud)
我希望它成为这个:
A B C
------------------
THAT MAT TERS
LOVE IS ALL
Run Code Online (Sandbox Code Playgroud)
我知道我可以按相反的顺序迭代我的数据但这不是我想要的.
data-analysis ×10
python ×7
r ×3
javascript ×2
matplotlib ×2
numpy ×2
pandas ×2
database ×1
dplyr ×1
forcats ×1
graph ×1
kaggle ×1
pageviews ×1
plot ×1
python-2.7 ×1
seaborn ×1
tidyverse ×1