小编nic*_*_eu的帖子

numpy:如果numpy数组是可见的可靠(非保守)指标

寻找一种可靠地识别numpy对象是否为视图的方法.

相关问题在之前(这里,这里,这里)出现了很多次,人们提供了一些解决方案,但似乎都有问题:

  • pandas现在使用的测试是调用某个视图my_array.base is not None.这似乎总是捕捉到观点,但也提供了许多误报(即使它不是,它报告某些东西是一种观点的情况).
  • numpy.may_share_memory() 将检查两个特定的数组,但不会回答一般
    • (@RobertKurn说截至2012年是最好的工具 - 任何变化?)
  • flags['OWNDATA'])报道(第三评论第一个答案)在某些情况下失败.

(我感兴趣的原因是我正在为大熊猫实施写时复制,而保守的指标导致过度复制.)

python arrays numpy pandas

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

在Pandas中检查数据框是复制还是查看

有没有一种简单的方法可以检查两个数据框是不同的副本还是不涉及操作的相同基础数据的视图?我试图抓住每一个生成的时间,并且考虑到规则似乎有多特殊,我想要一种简单的测试方法.

例如,我认为"id(df.values)"在各个视图中都是稳定的,但它们似乎不是:

# Make two data frames that are views of same data.
df = pd.DataFrame([[1,2,3,4],[5,6,7,8]], index = ['row1','row2'], 
       columns = ['a','b','c','d'])
df2 = df.iloc[0:2,:]

# Demonstrate they are views:
df.iloc[0,0] = 99
df2.iloc[0,0]
Out[70]: 99

# Now try and compare the id on values attribute
# Different despite being views! 

id(df.values)
Out[71]: 4753564496

id(df2.values)
Out[72]: 4753603728

# And we can of course compare df and df2
df is df2
Out[73]: False
Run Code Online (Sandbox Code Playgroud)

其他答案我已经抬头试图给出规则,但似乎不一致,也不回答如何测试的问题:

当然: - http://pandas.pydata.org/pandas-docs/stable/indexing.html#returning-a-view-versus-a-copy …

python pandas chained-assignment

30
推荐指数
2
解决办法
9256
查看次数

在Windows上使用带有cygwin的anaconda环境

尝试通过Windows NT上的cygwin界面使用anaconda设置环境,并且失败.

创建环境(conda create -n test_env)工作正常.但activate test_env失败了.

我尝试用它来破解它:

export PATH=/cygdrive/c/users/nick/anaconda3/envs/test:$PATH
Run Code Online (Sandbox Code Playgroud)

这修复了一些行为(which python指向正确的python).但是,如果我然后执行"conda install"命令,它将安装到根anaconda目录中,而不是环境中.也许导出是bash会话的本地导出,而conda调用不同版本的PATH?有一种方法可以修改PATH全局吗?

python windows cygwin anaconda

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

检查非索引列是否在Pandas中排序

有没有办法测试数据帧是否按照不是索引的给定列进行排序(即非索引列的等效于is_monotonic())而不重新调用排序,并且不将列转换为指数?

python pandas

12
推荐指数
3
解决办法
6390
查看次数

在RStudio/Interactive R会话中使执行停止

在RStudio中执行代码块时,执行实际上不会在发生错误时停止.例如,如果我在打开的编辑器中有以下代码:

x <- 'test'
stopifnot(is.numeric(x))
print('hello world')
Run Code Online (Sandbox Code Playgroud)

并运行它(使用命令返回或单击"运行"按钮),它会打印错误,然后继续前进并执行print语句.

有没有办法配置RStudio不能超过错误?即使它停在上面第2行并且不进入打印声明?

编辑:刚刚意识到如果我使用command-R在标准R GUI中发送代码块,也会发生这种情况.

testing unit-testing r rstudio

12
推荐指数
2
解决办法
1303
查看次数

开发构建的pandas给出了importerror:C扩展:'hashtable'不是基于python 3.4(anaconda)构建的

尝试使用3.4进行开发构建(以前在2.7中进行过管理).Python只是osx10.10上的anaconda安装.我可以得到

一世:

  • git克隆熊猫
  • 运行python setup.py build_ext --inplace(没有错误)
  • 运行python setup.py开发.

但是当我尝试导入大熊猫时,我得到:

import pandas as pd
Traceback (most recent call last):

  File "<ipython-input-2-af55e7023913>", line 1, in <module>
    import pandas as pd

  File "/Users/Nick/github/pandas/pandas/__init__.py", line 13, in <module>
    "extensions first.".format(module))

ImportError: C extension: 'hashtable' not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first.
Run Code Online (Sandbox Code Playgroud)

请注意,当我执行build_ext时,我得到以下(显然很好)输出:

pandas(master)$python setup.py build_ext --inplace

running build_ext
skipping 'pandas/index.c' Cython extension (up-to-date) …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

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

从 `%timeit` ipython magic 获取平均运行时间

尝试对不同的随机函数进行计时,以查看从列表中选择随机项目的最快方法。%timeit想要给我“3个中最好的”最快时间,但由于运行是随机的,因此访问时间存在很大差异(从列表后面抓取,会很慢;从前面抓取,会很快)。

\n\n

如何获得所有循环的平均值,而不是最好的?

\n\n
a = [0,6,3,1,3,9,4,3,2,6]\n\n%timeit random.choice(a)\n%timeit a[random.randint(0,len(a)-1)]\n%timeit a[np.random.randint(0,len(a)-1)]\n%timeit np.random.choice(a,1)[0]\n
Run Code Online (Sandbox Code Playgroud)\n\n

当前输出(确认时间差异):

\n\n
%timeit random.choice(a)\nThe slowest run took 9.87 times longer than the fastest. This could mean that an intermediate result is being cached \n1000000 loops, best of 3: 1.23 \xc2\xb5s per loop\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新:一种拼凑方法:

\n\n
%time for i in range(100000): random.choice(a)\n%time for i in range(100000): a[random.randint(0,len(a)-1)]\n%time for i in range(100000): a[np.random.randint(0,len(a)-1)]\n%time for i in range(100000): np.random.choice(a,1)[0]\n
Run Code Online (Sandbox Code Playgroud)\n

python ipython timeit

6
推荐指数
2
解决办法
6329
查看次数

提供postgres windows系统拷贝的权限(Windows 8)

我想使用pgadmin iii复制CSV文件.对此非常陌生.

当我从查询生成器运行"复制"命令时,我收到以下错误:

 ERROR: could not open file 'C:\\Users\\Nick\\Documents\\CDR\\csv1.csv" for reading: Permission denied SQL state: 42501
Run Code Online (Sandbox Code Playgroud)

我发现这个提到其他一些地方(在这里 在这里,并在这里例如,和一般的解决方法是"Postgres的"添加到该文件的权限(人也劝动CSV到公用文件夹,但这会导致其他问题原因).

但是当我尝试向Windows 8中具有权限的人添加postgres时,当我检查名称时,我得到"找不到对象postgres"错误.

如果我添加"Everyone"它可以工作,但由于显而易见的原因,我不想留下一个带有"Everyone"访问权限的重要文件夹.

任何人都可以建议如何在Windows 8中赋予postgres权限?

谢谢!

csv postgresql copy

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

对于每个点,R中第二个数据集中距离最近点的距离

尝试为SpatialPointsDataFrame中的每个点找到第二个SpatialPointsDataFrame中最近点的距离(相当于ArcGIS中两个SpatialPointDataFrames中的"最近"工具).

我可以通过使用gDistance计算所有成对距离并获取min(如此处的答案1)来做天真的实现,但我有一些巨大的数据集,并且正在寻找更高效的东西.

例如,这里有一个关于同一数据集中的点的knearneigh技巧.

r-sig-geo上交叉发布

gis r geospatial geos r-sp

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

Julia 错误的含义: ERROR (未处理的任务失败): EOFError: read end of file?

试图理解pmap执行一些令人尴尬的并行任务时出现的以下错误。在Linux服务器上运行。写入 HDF(并行调用的一部分)时可能会发生,但我不这么认为,因为堆栈跟踪没有指向正在执行的用户函数中的行,并且对 TCP 的引用表明它是并行调用的一部分。已经发生在多次连续运行中,所以不是一次性的侥幸。

Worker 139 terminated.
ERROR (unhandled task failure): EOFError: read end of file
Stacktrace:
 [1] unsafe_read(::Base.AbstractIOBuffer{Array{UInt8,1}}, ::Ptr{UInt8}, ::UInt64) at ./iobuffer.jl:105
 [2] unsafe_read(::TCPSocket, ::Ptr{UInt8}, ::UInt64) at ./stream.jl:752
 [3] unsafe_read(::TCPSocket, ::Base.RefValue{NTuple{4,Int64}}, ::Int64) at ./io.jl:361
 [4] read at ./io.jl:363 [inlined]
 [5] deserialize_hdr_raw at ./distributed/messages.jl:170 [inlined]
 [6] message_handler_loop(::TCPSocket, ::TCPSocket, ::Bool) at ./distributed/process_messages.jl:157
 [7] process_tcp_streams(::TCPSocket, ::TCPSocket, ::Bool) at ./distributed/process_messages.jl:118
 [8] (::Base.Distributed.##99#100{TCPSocket,TCPSocket,Bool})() at ./event.jl:73
Run Code Online (Sandbox Code Playgroud)

朱莉娅信息:

julia> versioninfo()

Julia Version 0.6.0
Commit 9036443 (2017-06-19 13:05 UTC)
Platform Info:
  OS: Linux …
Run Code Online (Sandbox Code Playgroud)

julia

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