小编mat*_*ick的帖子

ntype十进制的numpy数组?

Nimaly中是否有十进制dtypes?

>>> import decimal, numpy
>>> d = decimal.Decimal('1.1') 
>>> s = [['123.123','23'],['2323.212','123123.21312']]
>>> ss = numpy.array(s, dtype=numpy.dtype(decimal.Decimal))
>>> a = numpy.array(s, dtype=float)
>>> type(d)
<class 'decimal.Decimal'>
>>> type(ss[1,1])
<class 'str'>
>>> type(a[1,1])
<class 'numpy.float64'>
Run Code Online (Sandbox Code Playgroud)

我想numpy.array不支持每个dtype,但我认为只要正确的操作被定义,它至少会让dtype尽可能地传播.我错过了什么吗?这有什么办法吗?

python numpy decimal

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

pandas.read_csv:如何跳过评论行

我想我误解了read_csv的用意.如果我有一个'j'文件

# notes
a,b,c
# more notes
1,2,3
Run Code Online (Sandbox Code Playgroud)

我怎么能pandas.read_csv这个文件,跳过任何'#'评论的行?我在帮助'注释'中看到不支持行,但它表示应该返回一个空行.我看到一个错误

df = pandas.read_csv('j', comment='#')
Run Code Online (Sandbox Code Playgroud)

CParserError:标记数据时出错.C错误:第2行预期有1个字段,见3

我现在在

In [15]: pandas.__version__
Out[15]: '0.12.0rc1'
Run Code Online (Sandbox Code Playgroud)

版本'0.12.0-199-g4c8ad82':

In [43]: df = pandas.read_csv('j', comment='#', header=None)
Run Code Online (Sandbox Code Playgroud)

CParserError:标记数据时出错.C错误:第2行预期有1个字段,见3

python pandas

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

python"help"功能:打印docstrings

是否有打印输出帮助('myfun')的选项.我看到的行为是输出打印到std.out并且脚本等待用户输入(即输入'q'继续).

必须有一个设置来设置它只是转储文档字符串.

或者,如果我可以转储文档字符串PLUS"def f(args):"行也可以.

搜索"python帮助功能"是滑稽的.:)也许我错过了一些不错的pydoc页面那里解释了一切?

python docstring

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

shell脚本:在后台运行一段代码而不定义新函数?

有没有办法在后台运行"内联"代码块而不将块定义为函数?我想的是:

( do something; a bit more; finally this ) &
( more things; etc ...; ) &
wait
proceed ... 
Run Code Online (Sandbox Code Playgroud)

我想它只有一行额外定义一次使用功能,然后立即使用它,但我很好奇,没有找到任何搜索.

shell background

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

python pandas:pivot_table以nans方式静默删除索引

有没有选项可以不删除带有'nan'的索引?我认为默默地从枢轴中丢弃这些行会在某些时候引起某些严重的痛苦.

import pandas
import numpy

a = [['a', 'b', 12, 12, 12], ['a', numpy.nan, 12.3, 233., 12], ['b', 'a', 123.23, 123, 1], ['a', 'b', 1, 1, 1.]]

df = pandas.DataFrame(a, columns=['a', 'b', 'c', 'd', 'e'])

df_pivot = df.pivot_table(rows=['a', 'b'], values=['c', 'd', 'e'], aggfunc=sum)
print(df)
print(df_pivot)
Run Code Online (Sandbox Code Playgroud)

输出:

   a    b       c    d   e
0  a    b   12.00   12  12
1  a  NaN   12.30  233  12
2  b    a  123.23  123   1
3  a    b    1.00    1   1
          c    d   e
a b …
Run Code Online (Sandbox Code Playgroud)

python pandas

14
推荐指数
2
解决办法
5691
查看次数

新手python子进程:"写入错误:断管"

感谢以下有用的建议:

所以我似乎已经修好了

  1. 将命令分离为对Popen的单独调用
  2. stderr = subprocess.PIPE作为每个Popen链的参数.

新代码:

import subprocess
import shlex
import logging

def run_shell_commands(cmds):
    """ Run commands and return output from last call to subprocess.Popen.
        For usage see the test below.
    """
    # split the commands
    cmds = cmds.split("|")
    cmds = list(map(shlex.split,cmds))

    logging.info('%s' % (cmds,))

    # run the commands
    stdout_old = None
    stderr_old = None
    p = []
    for cmd in cmds:
        logging.info('%s' % (cmd,))
        p.append(subprocess.Popen(cmd,stdin=stdout_old,stdout=subprocess.PIPE,stderr=subprocess.PIPE))
        stdout_old = p[-1].stdout
        stderr_old = p[-1].stderr
    return p[-1]


pattern = '"^85567      "'
file …
Run Code Online (Sandbox Code Playgroud)

python subprocess popen

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

如何更改numpy recarray的某些列的dtype?

假设我有一个如下所示的重组:

import numpy as np

# example data from @unutbu's answer
recs = [('Bill', '31', 260.0), ('Fred', 15, '145.0')]
r = np.rec.fromrecords(recs, formats = 'S30,i2,f4', names = 'name, age, weight')

print(r)
# [('Bill', 31, 260.0) ('Fred', 15, 145.0)]
Run Code Online (Sandbox Code Playgroud)

假设我想将某些列转换为浮点数.我该怎么做呢?我应该换成一个ndarray,然后再回到recarray吗?

python numpy pandas

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

如何在MATLAB中将变量移入和移出类似于LOAD和SAVE的结构?

是否有一种快速的方法(即一行)将一组变量转储到一个结构中,使用变量名称作为结构字段?"加载"功能基本上可以做到这一点,但保存和加载到临时文件似乎很难看.

例如:

clear
a = 'adsf'
b = rand(10);

x = var2struct(a,b)

x.a
x.b
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

x = var2struct(['a';'b'])
Run Code Online (Sandbox Code Playgroud)

另外,反过来(即将字段值作为字段命名的变量转储到当前作用域)?

clear
x.a='asdf'
x.b=rand(10);
dumpstruct(x)
a
b 
Run Code Online (Sandbox Code Playgroud)

另外,这是一个相关的新闻组主题.

variables matlab structure save matlab-load

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

使用tf.function的Tensorflow 2.0模型非常慢,并且每次火车数量变化时都会重新编译。渴望的速度快大约4倍

我有从未编译的keras代码构建的模型,并且正在尝试通过自定义训练循环运行它们。

TF 2.0急切(默认)代码在CPU(笔记本电脑)上运行约30秒钟。当我用包装的tf.function调用方法创建一个keras模型时,它运行的速度非常慢,而且启动时间似乎很长,尤其是“第一次”。

例如,在tf.function代码中,对10个样本的初始训练花费40s,而对10个样本的后续训练花费2s。

在20个样本上,初始花费50s,后续花费4s。

第一次采样1个样本需要2秒钟,后续过程需要200毫秒。

如此看来,每次火车呼叫都在创建一个新图,其中复杂度随火车数量而增加!

我只是在做这样的事情:

@tf.function
def train(n=10):
    step = 0
    loss = 0.0
    accuracy = 0.0
    for i in range(n):
        step += 1
        d, dd, l = train_one_step(model, opt, data)
        tf.print(dd)
        with tf.name_scope('train'):
            for k in dd:
                tf.summary.scalar(k, dd[k], step=step)
        if tf.equal(step % 10, 0):
            tf.print(dd)
    d.update(dd)
    return d
Run Code Online (Sandbox Code Playgroud)

根据示例,模型keras.model.Model使用@tf.function装饰call方法。

keras tensorflow2.0

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

python matplotlib:转置轴的方法

假设我有一个绘图函数,它接受一个axis参数(或返回一个).是否有一些低级方法用于转置整个图,使x轴成为y轴,反之亦然?或者甚至是绘图之前的轴,以便绘图功能通过依赖轴功能正确地完成所有操作(标记)?

我知道如何"手动"执行此操作,但我想知道是否存在允许这种转换的略微隐藏的抽象级别.

matplotlib

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