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尽可能地传播.我错过了什么吗?这有什么办法吗?
我想我误解了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
是否有打印输出帮助('myfun')的选项.我看到的行为是输出打印到std.out并且脚本等待用户输入(即输入'q'继续).
必须有一个设置来设置它只是转储文档字符串.
或者,如果我可以转储文档字符串PLUS"def f(args):"行也可以.
搜索"python帮助功能"是滑稽的.:)也许我错过了一些不错的pydoc页面那里解释了一切?
有没有办法在后台运行"内联"代码块而不将块定义为函数?我想的是:
( do something; a bit more; finally this ) &
( more things; etc ...; ) &
wait
proceed ...
Run Code Online (Sandbox Code Playgroud)
我想它只有一行额外定义一次使用功能,然后立即使用它,但我很好奇,没有找到任何搜索.
有没有选项可以不删除带有'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) 感谢以下有用的建议:
所以我似乎已经修好了
新代码:
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) 假设我有一个如下所示的重组:
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吗?
是否有一种快速的方法(即一行)将一组变量转储到一个结构中,使用变量名称作为结构字段?"加载"功能基本上可以做到这一点,但保存和加载到临时文件似乎很难看.
例如:
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)
另外,这是一个相关的新闻组主题.
我有从未编译的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
方法。
假设我有一个绘图函数,它接受一个axis参数(或返回一个).是否有一些低级方法用于转置整个图,使x轴成为y轴,反之亦然?或者甚至是绘图之前的轴,以便绘图功能通过依赖轴功能正确地完成所有操作(标记)?
我知道如何"手动"执行此操作,但我想知道是否存在允许这种转换的略微隐藏的抽象级别.
python ×6
pandas ×3
numpy ×2
background ×1
decimal ×1
docstring ×1
keras ×1
matlab ×1
matlab-load ×1
matplotlib ×1
popen ×1
save ×1
shell ×1
structure ×1
subprocess ×1
variables ×1