小编kar*_*kfa的帖子

用numpy读科学记数法csv文件

我正在尝试加载一个代表带有numpy loadtxt的2D矩阵的文件

cov = np.loadtxt("cov.csv")
Run Code Online (Sandbox Code Playgroud)

第一个要素是科学记数法导致失败

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-80-0796abd8c0f7> in <module>()
----> 1 cov = np.loadtxt("cov.csv")

C:\home\Anaconda3\lib\site-packages\numpy\lib\npyio.py in loadtxt(fname, dtype, comments, delimiter, converters, skiprows, usecols, unpack, ndmin)
    858 
    859             # Convert each value according to its column and store
--> 860             items = [conv(val) for (conv, val) in zip(converters, vals)]
    861             # Then pack it according to the dtype's nesting
    862             items = pack_items(items, packing)

C:\home\Anaconda3\lib\site-packages\numpy\lib\npyio.py in <listcomp>(.0)
    858 
    859             # Convert each value according …
Run Code Online (Sandbox Code Playgroud)

python csv numpy

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

使用printf格式化输出:截断或填充

我想产生以下输出:

> Avril Stewart  99  54
> Sally Kinghorn 170 60
> John Young     195 120
> Yutte Schim... 250 40
Run Code Online (Sandbox Code Playgroud)

如您所见,短于14个字符的名称将用空格填充.截断超过15个字符的名称:'Yutte Schimmelpenninck'截断为'Yutte Schim ......'.

以下是我试图做到这一点(变量$name,$height以及$weight从文件中提取,并运行一个循环的printf每个文件数据的命令):

printf '%-14s -%3s -%3s\n' "$name" "$height" "$weight"
> Avril Stewart  99  54
> Sally Kinghorn 170 60
> John Young     195 120
> Yutte Schimmelpenninck 250 40
Run Code Online (Sandbox Code Playgroud)

甲printf单行是所希望的解决方案.

什么代码会产生第一个输出块?

bash awk printf formatted output

4
推荐指数
3
解决办法
3769
查看次数

有多种方法可以进行霍夫曼编码吗?

所以我制作了一个应该进行霍夫曼编码的程序.将我的答案与正确答案进行比较时,并非所有答案都匹配.

我有

[("a","0"),("c","100"),("b","101"),("d","110"),("f","1110"),("e","1111")]
Run Code Online (Sandbox Code Playgroud)

正确的答案是

[('a',"0"),('b',"101"),('c',"100"),('d',"111"),('e',"1101"),('f',"1100")]
Run Code Online (Sandbox Code Playgroud)

正确的树是 正确的树

然而我的方法给了我一点点改变.在分支30上,我使用0来到D而不是1.

所以这让我想知道,这两个答案都是正确的吗?毕竟他们都有相同的字符串长度.

如果我错了,有人可以解释原因吗?

如果有人想要它,我的代码是在下面的Haskell中编写的

mergHufffman::(String,Int) -> (String,Int) -> (String,Int)
mergHufffman x y =  (fst x ++ fst y, snd x + snd y)

data HTree a = Leaf a | Branch (HTree a) (HTree a) deriving Show

treeHuff::[(String,Int)] -> HTree (String,Int)
treeHuff (x:[]) = Leaf x
treeHuff (x:y:[])
        | snd x < snd y = Branch (Leaf x) (Leaf y)
        | snd x > snd y = Branch (Leaf y) (Leaf x)
treeHuff (x:y:z:list) …
Run Code Online (Sandbox Code Playgroud)

haskell huffman-code

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

更改日期字符串格式

你好Sed/Bash/Awk专家,

我有一个充满日期的文件,格式如下:

Feb 5 2015

Nov 25 2014

Apr 16 2015
Run Code Online (Sandbox Code Playgroud)

我想要的是将它们转换为这种格式:

YYYY-MM-DD
Run Code Online (Sandbox Code Playgroud)

所以他们应该是这样的:

2015-02-05

2014-11-25

2015-04-16
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

bash awk sed

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

bash脚本增量编号,以零前缀结尾

给出一个包含这样内容的文件:

foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)

我需要一个bash脚本来读取这个文件只增加最后一个数字,并考虑第二行的最后三位数作为xyx中z的空间增长到三位数(并用新数据覆盖原始文件:

输入1:

foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)

输出1:

 foo: 8.3.2
 bar: 803002
Run Code Online (Sandbox Code Playgroud)

输入2:

foo: 8.3.9
bar: 803009
Run Code Online (Sandbox Code Playgroud)

输出2:

 foo: 8.3.10
 bar: 803010
Run Code Online (Sandbox Code Playgroud)

输入3:

foo: 8.3.199
bar: 803199
Run Code Online (Sandbox Code Playgroud)

输出3:

 foo: 8.3.200
 bar: 803200
Run Code Online (Sandbox Code Playgroud)

我可以在2秒内在java中执行此操作,但我需要在shell脚本中执行此操作,否则我将面临构建团队无休止的嘲弄.

没有一些粗略的字符串拆分任何光滑的sep命令将是一个很大的帮助!

bash scripting awk

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

在Mathematica中找到对中列表中的最大对

有没有一种简单的方法可以从对列表中找到最大元素?基于列表构造(这些对应于坐标),存在明确定义的最大值{x_max,y_max}.例如,我正在寻找一个功能MaxElement

MaxElement[{{0, 0}, {0, 1}, {1, 1}, {1, 0}}]
Run Code Online (Sandbox Code Playgroud)

将返回 {1,1}

wolfram-mathematica

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

Haskell,仅通过第一个字段排序三重奏

我有一个元素列表(Int, Int, Int).
如何仅按第一个元素对此列表进行排序?
我可以处理成对,但有三个元素我有问题

haskell

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

在Haskell中使用concat和map实现过滤器

filter1 :: (a -> Bool) -> [a] -> [a]
filter1 p = concat.map box
              where box x
                    | p x       = [x]
                    | otherwise = []
Run Code Online (Sandbox Code Playgroud)

我不明白这个解决方案.map将box应用于列表的所有元素,如果px == True,它将元素放在单个元素的列表中,然后concat取消所有内容?concat在最后还是一个一个地统一一切?

谢谢!我希望有人理解这一点

haskell functional-programming

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