我有一个具有混合数据类型(即浮点数、整数和字符串)的 numpy 结构化数组。我想选择数组的一些列(所有列仅包含浮点数),然后按列获取行的总和,作为标准 numpy 数组。初始数组的形式类似于:
\n\nsome_data = np.array([(\'foo\', 3.5, 2.15), (\'bar\', 2.8, 5.3), (\'baz\', 1.2, 3.7)], \n dtype=[(\'col1\', \'<U20\'), (\'A\', \'<f8\'), (\'B\', \'<f8\')])\n
Run Code Online (Sandbox Code Playgroud)\n\n对于这个例子,我想对 A 列和 B 列求和,得到np.array([7.5, 11.15])
。使用 numpy \xe2\x89\xa41.13,我可以这样做:
get_cols = [\'A\', \'B\']\ndesired_sum = np.sum(some_data[get_cols].view((\'<f8\', len(get_cols))), axis=0)\n
Run Code Online (Sandbox Code Playgroud)\n\n随着 numpy 1.14 的发布,此方法现在失败并显示,这是numpy 1.14 对结构化数组的处理ValueError: Changing the dtype to a subarray type is only supported if the total itemsize is unchanged
进行更改的结果。(用户 bbengfort对此答案中有关此更改的 FutureWarning 发表了评论。)
鉴于结构化数组的这些变化,如何从结构化数组子集中获得所需的总和?
\n随着ggplot,我想添加一个靠左对齐图例标题多行和指数在文本图例中的值的单位.我正在绘制类似于以下形式的数据:
leakage_rates_levels <- c(5.4, 0.25)
leakage_rates <- as.factor(rep(leakage_rates_levels, 3)) # L/s-m^2 at 75 Pa
data_groups_levels <- c('Set 1', 'Set 2', 'Set 3')
data_groups <- as.factor(rep(data_groups_levels, each=2))
moisture_level <- c(7, 3, 11, 10, 16, 6)
plotdt <- data.frame(data_groups, leakage_rates, moisture_level)
Run Code Online (Sandbox Code Playgroud)
我用来expression()
向图例中的单位添加指数.以下代码生成所需的图形,但图例标题文本格式错误.
ggplot(plotdt, aes(data_groups)) +
geom_bar(aes(weight=moisture_level, fill=leakage_rates), position='dodge') +
labs(y='Moisture Level') +
labs(fill=expression(paste('Leakage Rate\nat 75 Pa\n(L/s-', m^2, ')', sep=''))) +
theme(panel.grid.major.x = element_blank(),
axis.title.x = element_blank())
Run Code Online (Sandbox Code Playgroud)
除了最后一行之外,图例标题显示为左对齐,最后一行在其中间有一堆无关的空格.
使用legend_title_align=0
(建议在这里)和/或legend_title=element_text(hjust=1)
在theme()
没有任何效果.试图添加phantom()
间距也没有用(这里建议). …
如果这是一个已经解决的问题,我道歉.我想在运行Python脚本时或在Python中获取当前目录.以下将返回包括当前目录的完整路径:
os.getcwd()
Run Code Online (Sandbox Code Playgroud)
我也可以一直到当前目录的路径:
os.path.dirname(os.getcwd())
Run Code Online (Sandbox Code Playgroud)
使用os.path.split
将返回与上面相同的内容,加上当前文件夹,但最后我得到了一个我想要的对象:
(thing_I_dont_want, thing_I_want) = os.path.split(os.getcwd())
Run Code Online (Sandbox Code Playgroud)
有没有办法可以得到我想要的东西,当前文件夹,而不创建任何我不想要的对象?或者,有什么我可以代替变量thing_I_dont_want
来阻止它被创建(例如(*, thing_I_want)
)?
谢谢!