建立:
pdf = pd.DataFrame(np.random.rand(4,5), columns = list('abcde'))
pdf['a'][2:]=pdf['a'][0]
pdf['a'][:2]=pdf['a'][1]
pdf.set_index(['a','b'])
Run Code Online (Sandbox Code Playgroud)
输出:
c d e
a b
0.439502 0.115087 0.832546 0.760513 0.776555
0.609107 0.247642 0.031650 0.727773
0.995370 0.299640 0.053523 0.565753 0.857235
0.392132 0.832560 0.774653 0.213692
Run Code Online (Sandbox Code Playgroud)
每个数据系列按索引ID分组,a并b表示其他功能的时间索引a.有没有办法让大熊猫产生反映a分组的numpy 3d数组?目前它将数据读取为二维pdf.shape输出(4, 5).我想要的是数组是变量形式:
array([[[-1.38655912, -0.90145951, -0.95106951, 0.76570984],
[-0.21004144, -2.66498267, -0.29255182, 1.43411576],
[-0.21004144, -2.66498267, -0.29255182, 1.43411576]],
[[ 0.0768149 , -0.7566995 , -2.57770951, 0.70834656],
[-0.99097395, -0.81592084, -1.21075386, 0.12361382]]])
Run Code Online (Sandbox Code Playgroud)
是否有本地Pandas方式来做到这一点?请注意,a实际数据中每个分组的行数是可变的,因此我不能只是转置或重塑pdf.values.如果没有本地方式,那么从数十万行和数百列迭代构建数组的最佳方法是什么?
我是F#和Haskell的新手,我正在实施一个项目,以确定我希望将更多时间花在哪种语言上.
我有很多情况,我希望给定的数字类型基于给予顶级函数的参数给定维度(即,在运行时).例如,在这个F#片段中,我有
type DataStreamItem = LinearAlgebra.Vector<float32>
type Ball =
{R : float32;
X : DataStreamItem}
Run Code Online (Sandbox Code Playgroud)
我希望所有类型的实例DataStreamItem都有D尺寸.
我的问题在于算法开发和调试的兴趣,因为这样的形状错配错误可能是令人头疼的问题,但是当算法正在运行时应该是一个非问题:
有没有办法在F#或Haskell中约束DataStreamItem和/或Ball维度D?或者我是否需要在每次计算时采用模式匹配?
如果是后者,是否有任何好的,轻量级的范例可以在它们发生时立即捕获这些约束违规(当性能至关重要时可以删除)?
编辑:
澄清D受约束的意义:
D定义为如果您将函数的算法表示main(DataStream)为计算图,则所有中间计算将取决于D执行的维度main(DataStream).我能想到的最简单的例子将是一个点积M有DataStreamItem:的尺寸DataStream将确定的尺寸参数的创建M
另一个编辑:
一周之后,我发现以下博客准确概述了我在Haskell中依赖类型中寻找的内容:
https://blog.jle.im/entry/practical-dependent-types-in-haskell-1.html
另一个: 这个reddit包含了一些关于Haskell中Dependent Types的讨论,并且包含了一篇关于 R. Eisenberg 非常有趣的论文提案的链接.