小编Fer*_*isi的帖子

如何让bc处理科学(又称指数)表示法中的数字?

bc 不喜欢用科学记数法表示的数字(又称指数表示法).

$ echo "3.1e1*2" | bc -l
(standard_in) 1: parse error
Run Code Online (Sandbox Code Playgroud)

但是我需要用它来处理用这种表示法表达的一些记录.有没有办法bc了解指数表示法?如果没有,我该怎么做才能将它们翻译成bc可以理解的格式?

bash numeric floating-accuracy bc

38
推荐指数
4
解决办法
4万
查看次数

如何获得重音字母才真正在bash上工作?

我在cygwin上的bash安装没有正确处理重音字母.我尝试添加

set input-meta on    # to accept 8-bit characters
set output-meta on   # to show 8-bit characters
set convert-meta on  # to show it as character, not the octal representation
Run Code Online (Sandbox Code Playgroud)

我的输入rc,但这还不太有用.的确,如果我输入

$ echo ù
Run Code Online (Sandbox Code Playgroud)

然后在我按下输入之前它会自动更改为

$ echo \303
Run Code Online (Sandbox Code Playgroud)

虽然输出是正确的,但我得到了

$ echo \303
ù
Run Code Online (Sandbox Code Playgroud)

对于任何其他重音字母,我得到相同的结果.通常虽然我使用的是非意大利语键盘,但我使用autohotkey带有重音字母的撇号替换字母.在这种情况下,重音字母被替换为a \302,并且根据字母打印垃圾:打印a 3y表示a ù,a ¢表示an ò,而不打印其他内容.

我怎样才能让这一切变得有意义?

编辑:我的语言环境设置,cygwin版本和终端如下

$ uname -a
CYGWIN_NT-6.1-WOW64 ferdi-Asus 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin
$ locale
LANG=it_IT.UTF-8
LC_CTYPE="it_IT.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="it_IT.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="it_IT.UTF-8"
LC_ALL=
$ tty …
Run Code Online (Sandbox Code Playgroud)

bash cygwin non-ascii-characters

31
推荐指数
1
解决办法
1万
查看次数

如何从python中的数组(或矩阵)中提取所有列但只提取一列?

给定一个numpy 2d数组(或矩阵),我想提取除i-th之外的所有列.

E. g.从

1 2 3 4
2 4 6 8
3 6 9 12
Run Code Online (Sandbox Code Playgroud)

我想要,例如

1 2 3
2 4 6
3 6 9
Run Code Online (Sandbox Code Playgroud)

要么

1 2 4
2 4 8
3 6 12
Run Code Online (Sandbox Code Playgroud)

我找不到这样做的pythonic方法.我现在可以简单地提取给定的列

a[:,n]
Run Code Online (Sandbox Code Playgroud)

要么

a[:,[n,n+1,n+5]]
Run Code Online (Sandbox Code Playgroud)

但是除了一个之外,提取所有这些呢?

python arrays numpy matrix

18
推荐指数
3
解决办法
3万
查看次数

如何告诉gnuplot不打印适合登录屏幕?

我正在编写一个bash脚本,在更多的东西中,调用gnuplot来适应一些数据文件.当它这样做时,我的终端充满了gnuplot适合日志.

我不希望这样,我希望gnuplot只将日志保存到文件'fit.log',而不是在屏幕上打印.但是我找不到gnuplot命令来阻止在终端上打印fit日志文件.

如何将所有gnuplot文本输出重定向到文件,因为我想通过查看终端是否返回任何错误来了解.

bash gnuplot

17
推荐指数
1
解决办法
8620
查看次数

如何在bash中更改printf命令中的小数点分隔符?

我使用Cygwin的意大利语本地化,因此我的printf命令使用逗号分隔浮点数,并且不理解以点分隔的浮点数

$ printf "%f" 3.1415
-bash: printf: 3.1415: invalid number
0,000000

$ printf "%f" 3,1415
3,141500
Run Code Online (Sandbox Code Playgroud)

这会产生一些问题,因为基本上其他所有东西都使用点来分隔十进制数字.

如何将小数点分隔符从逗号更改为点?

bash printf

16
推荐指数
2
解决办法
2万
查看次数

bash中的无法解释的错误:脚本中的printf命令返回"无效的数字"

我无法printf在bash脚本中使用%e描述符打印变量.它会说

#!/bin/bash
a=14.9
printf %e 14.9;
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个非常简单的问题,但我对bash并不熟悉并且总是使用echo.另外,我无法在任何地方找到答案.


我跑的时候

$ ./test.text
./test.text: line 3: printf: 14.9: invalid number
0,000000
Run Code Online (Sandbox Code Playgroud)

因此我的问题是语言环境变量LC_NUMERIC:它被设置为使用逗号作为小数分隔符.事实上,它将成为欧洲本地化:

$ locale | grep NUM
LC_NUMERIC="it_IT.UTF-8"
Run Code Online (Sandbox Code Playgroud)

我以为我把它设置为en_US.UTF-8,但显然我没有.现在问题切换到找到如何设置我的语言环境变量.简单地使用

$ LC_NUMERIC="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

不行.

bash printf

15
推荐指数
2
解决办法
1万
查看次数

如何在gnuplot中设置带有列标题的轴标签?

我的问题很简单.假设我有一个带有列标题的数据文件,如下所示

first second
1 1 
2 1
3 6
4 9
Run Code Online (Sandbox Code Playgroud)

在gnuplot中我如何使用列标题作为轴标签来绘制数据文件?例如通过电话

plot datafile using 1:2
Run Code Online (Sandbox Code Playgroud)

我得到了xaxis标签first和yaxis 标签second

编辑:我知道我可以使用列标题作为键输入set key auto title column head,但这不是我正在寻找的.

gnuplot columnheader

12
推荐指数
2
解决办法
8627
查看次数

如何在给定文件扩展名的vim中定义默认初始文件?

每次我写一个新的python程序,我发现自己一遍又一遍地写相同的初始行:

#!/usr/bin/env python
'''
Description of the program
'''
import always, the, same, libraries

def helper_function(helpers_args):
'''
A function that is called in get_main_output, but that someone might want to import too.
'''
    continue

def get_main_output(program_arguments):
'''
Description of the main function
'''
    continue

if __name__ == '__main__':
    output = get_main_output(sys.argv)
Run Code Online (Sandbox Code Playgroud)

我不想每次都手工完成.我希望vim每次打开带有扩展名的不存在的文件时都会向我显示此文件.py,以便我可以根据需要对其进行修改,然后将其保存到我新创建的源文件中.

我怎样才能做到这一点?

如果答案已经在某处,请道歉.我以为会是,但我无法在任何地方找到它.

vim

4
推荐指数
1
解决办法
57
查看次数

计算两组矢量numpy之间的交叉乘积的有效方法

我有两组2000个3D矢量,我需要计算每个可能的对之间的交叉积.我现在这样做

for tx in tangents_x:
    for ty in tangents_y:
         cross = np.cross(tx, ty)
         (... do something with the cross variable...)
Run Code Online (Sandbox Code Playgroud)

这有效,但速度很慢.有没有办法让它更快?

如果我对元素产品感兴趣,我可以做以下事情

# Define initial vectors
tx = np.array([np.random.randn(3) for i in range(2000)])
ty = np.array([np.random.randn(3) for i in range(2000)])
# Store them into matrices
X = np.array([tx for i in range(2000)])
Y = np.array([ty for i in range(2000)]).T
# Compute the element-wise product
ew = X * Y
# Use the element_wise product as usual
for i,tx in enumerate(tangents_x): …
Run Code Online (Sandbox Code Playgroud)

python numpy

3
推荐指数
1
解决办法
509
查看次数

如何创建一个包含另一个数据帧的某些行的平均值和标准差的Python数据帧

我有一个 pandas DataFrame 包含一些值:

                    id  pair      value  subdir
taylor_1e3c_1s_56C  taylor  6_13  -0.398716    run1 
taylor_1e3c_1s_56C  taylor  6_13  -0.397820    run2 
taylor_1e3c_1s_56C  taylor  6_13  -0.397310    run3 
taylor_1e3c_1s_56C  taylor  6_13  -0.390520    run4 
taylor_1e3c_1s_56C  taylor  6_13  -0.377390    run5 
taylor_1e3c_1s_56C  taylor  8_11  -0.393604    run1
taylor_1e3c_1s_56C  taylor  8_11  -0.392899    run2
taylor_1e3c_1s_56C  taylor  8_11  -0.392473    run3
taylor_1e3c_1s_56C  taylor  8_11  -0.389959    run4
taylor_1e3c_1s_56C  taylor  8_11  -0.387946    run5
Run Code Online (Sandbox Code Playgroud)

我想做的是隔离具有相同索引、id 和对的行,计算值列的平均值和标准差,并将其全部放入一个新的数据框中。因为我现在已经有效地平均了 subdir 的所有可能值,所以该列也应该被删除。所以输出应该是这样的

                    id  pair      value     error
taylor_1e3c_1s_56C  taylor  6_13  -0.392351 0.013213
taylor_1e3c_1s_56C  taylor  8_11  -0.391376 0.016432
Run Code Online (Sandbox Code Playgroud)

我应该如何在熊猫中做到这一点?

上一个问题向我展示了如何获取平均值 - …

python dataframe pandas pandas-groupby

1
推荐指数
1
解决办法
2733
查看次数

sagemaker官方教程是否会产生AttributeError,如何解决?

我正在关注AWS Sagemaker 教程,但我认为步骤 4a 中存在错误。特别是,在第 3 行,我被指示输入:

     s3_input_train = sagemaker.s3_input(s3_data='s3://{}/{}/train'.format(bucket_name, prefix), content_type='csv')
Run Code Online (Sandbox Code Playgroud)

我得到了错误

----> 3 s3_input_train = sagemaker.s3_input(s3_data='s3://{}/{}/train'.format(bucket_name, prefix), content_type='csv')

AttributeError: module 'sagemaker' has no attribute 's3_input'
Run Code Online (Sandbox Code Playgroud)

实际上, usingdir表明 sagemaker 没有名为 s3_input 的属性。如何解决这个问题,以便我可以在教程中继续前进?我尝试使用session.inputs,但这会将我重定向到一个页面,说该页面session已弃用并建议我使用sagemaker.inputs.TrainingInput而不是sagemaker.s3_inputs. 这是前进的好方法吗?

感谢大家的帮助和耐心!

amazon-web-services python-3.x amazon-sagemaker

1
推荐指数
1
解决办法
256
查看次数

如何使用Scrapy下载我所有的Quora答案?

我正在尝试使用Scrapy下载我的Quora答案,但似乎无法下载我的页面。使用简单

scrapy shell 'http://it.quora.com/profile/Ferdinando-Randisi'
Run Code Online (Sandbox Code Playgroud)

返回此错误

2017-10-05 22:16:52 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: quora)
2017-10-05 22:16:52 [scrapy.utils.log] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'quora.spiders', 'ROBOTSTXT_OBEY': True, 'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter', 'SPIDER_MODULES': \[quora.spiders'], 'BOT_NAME': 'quora', 'LOGSTATS_INTERVAL': 0}
....
2017-10-05 22:16:53 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2017-10-05 22:16:53 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-10-05 22:16:53 [scrapy.core.engine] INFO: Spider opened
2017-10-05 22:16:54 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET https://it.quora.com/robots.txt> from <GET http://it.quora.com/robots.txt>
2017-10-05 22:16:55 [scrapy.core.engine] DEBUG: Crawled (429) <GET https://it.quora.com/robots.txt> (referer: None) …
Run Code Online (Sandbox Code Playgroud)

scrapy web-scraping quora

0
推荐指数
1
解决办法
559
查看次数