小编Pio*_*dal的帖子

使用行和列标题读取CSV的Pythonic方法

让我们有一个带有行和列标题的CSV表,例如:

, "Car", "Bike", "Boat", "Plane", "Shuttle"
"Red", 1, 7, 3, 0, 0
"Green", 5, 0, 0, 0, 0
"Blue", 1, 1, 4, 0, 1
Run Code Online (Sandbox Code Playgroud)

我想获得行和列标题,即:

col_headers = ["Car", "Bike", "Boat", "Plane", "Shuttle"]
row_headers = ["Red", "Green", "Blue"]
data = [[1, 7, 3, 0, 0],
        [5, 0, 0, 0, 0],
        [1, 1, 4, 0, 1]]
Run Code Online (Sandbox Code Playgroud)

当然我可以做点什么

import csv
with open("path/to/file.csv", "r") as f:
    csvraw = list(csv.reader(f))
col_headers = csvraw[1][1:]
row_headers = [row[0] for row in csvraw[1:]]
data = [row[1:] for …
Run Code Online (Sandbox Code Playgroud)

python csv

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

将NumPy数组元素地映射到更多维度的数组中

我想要numpy.array从NxM到NxMx3的映射a ,其中三个元素的向量是原始条目的函数:

lambda x: [f1(x), f2(x), f3(x)]
Run Code Online (Sandbox Code Playgroud)

但是,像numpy.vectorize不允许更改尺寸的事情.当然,我可以创建一个零数组并创建一个循环(这就是我现在正在做的事情),但它既没有Pythonic也没有效率(就像Python中的每个循环一样).

有没有更好的方法在numpy.array上执行元素操作,为每个条目生成一个向量?

python arrays numpy map

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

优化Mathematica生成的eps/pdf文件的大小

如何优化Mathematica生成的eps或pdf文件的大小?

通常文件大小应该比它大50-100倍(下面的例子).对于某些应用程序(例如将图形放在出版物中,或者甚至更多 - 将其放在大型海报上)我需要在矢量图形中使用轴,因此对于我来说使用光栅图形并不是最佳选择.

每个实用的解决方案(无论是在Mathematica中设置正确的选项,还是在其他应用程序中进行进一步的转换)都将受到赞赏.

例如,下面的代码生成一个eps数字:

plot = ListDensityPlot[
Table[Random[], {100}, {100}],
InterpolationOrder -> 0]

Export["testplot.eps", plot]
Export["testplot.pdf", plot]
Run Code Online (Sandbox Code Playgroud)

生成一个大小为3.3MB且pdf大小为5MB的eps文件(如果它有所不同,则在Mac OS X 10.6上的Mathematica 7上).

为了进行比较,具有相同轴的3x3图具有8kB(pdf)至20kB(eps).bmp中100x100点为30kB(png略低).

对于其他类型的情节,问题是相同的,重点是ListPlot3D.

pdf wolfram-mathematica export eps figure

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

SVG中的厚Bezier曲线没有伪影

我尝试绘制厚Bezier线(用于自定义Sankey图).我使用SVG路径,以贝塞尔曲线的形式C x1 y1, x2 y2, x y.我使用stroke而不是fill,因此它们具有恒定的宽度(并且可以表示流).

如果线条很薄或垂直差异相对较小,它的效果非常好.然而,如果它们非常厚,我会得到一些讨厌的文物(看起来像角) - 请参见下图中的右下曲线:

在此输入图像描述

资料来源:http://jsfiddle.net/stared/83jr5fub/

有没有办法避免伪影,即:

  • 确保左侧x1或右侧没有任何东西x,
  • 左右实际宽度匹配stroke-width

css svg d3.js

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

在创建从中继承的对象时在Python中进行条件导入

我创建了一个连接到其他库(livelossplot)的包.它有很多可选的依赖项(深度学习框架),我不想强​​迫人们安装它们.

现在我使用条件导入,本着以下精神:

try:
    from .keras_plot import PlotLossesKeras
except ImportError:
    # import keras plot only if there is keras
    pass
Run Code Online (Sandbox Code Playgroud)

但是,这意味着它会导入大型库,即使不打算使用它们也是如此.问题是:只有在创建特定对象时才能导入库?

对于Python函数,它很简单:

def function_using_keras():
   import keras
   ...
Run Code Online (Sandbox Code Playgroud)

从其他类继承的类有什么好的做法?

在定义对象之前,似乎需要导入父类:

from keras.callbacks import Callback
class PlotLossesKeras(Callback):
    ...
Run Code Online (Sandbox Code Playgroud)

python inheritance class python-import

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

将Pandas系列导出为JSON - numpy类型的错误

我想将一些行从Pandas DataFrame导出到JSON.但是,导出列时出现错误:

TypeError: False is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

要么

TypeError: 0 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我抬头查看了我的数据,问题出现了numpy.int64并且numpy.bool_(numpy.float64工作正常).

例如,出现以下问题:

import pandas as pd
import simplejson as json

df = pd.DataFrame([[False,0],[True,1]], columns=['a','b'])
json.dumps(df.ix[0].to_dict())
Run Code Online (Sandbox Code Playgroud)

(同样的事情发生dict(df.ix[0])).

是否有一个简单的解决方法将Pandas系列导出为JSON?

或者至少是一个将任何numpy类型强制转换为与JSON兼容的最接近类型的函数?

python json numpy pandas

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

标签 统计

python ×4

numpy ×2

arrays ×1

class ×1

css ×1

csv ×1

d3.js ×1

eps ×1

export ×1

figure ×1

inheritance ×1

json ×1

map ×1

pandas ×1

pdf ×1

python-import ×1

svg ×1

wolfram-mathematica ×1