小编fee*_*dMe的帖子

使用None替换Pandas或Numpy Nan以与MysqlDB一起使用

我正在尝试使用MysqlDB将一个Pandas数据帧(或者可以使用numpy数组)写入mysql数据库.MysqlDB似乎不理解'nan',我的数据库抛出一个错误,说nan不在字段列表中.我需要找到一种方法将'nan'转换为NoneType.

有任何想法吗?

python numpy mysql-python pandas

99
推荐指数
7
解决办法
8万
查看次数

压缩距离矩阵如何工作?(pdist)

scipy.spatial.distance.pdist返回压缩距离矩阵.从文档:

返回压缩距离矩阵Y.对于每个和(where),度量dist(u = X [i],v = X [j])被计算并存储在条目ij中.

我以为ij是的意思i*j.但我想我可能错了.考虑

X = array([[1,2], [1,2], [3,4]])
dist_matrix = pdist(X)
Run Code Online (Sandbox Code Playgroud)

然后文档说dist(X[0], X[2])应该是dist_matrix[0*2].但是,dist_matrix[0*2]它应该是0 - 而不是2.8.

我应该使用什么公式来获取两个向量的相似性,给定ij

python numpy scipy

60
推荐指数
6
解决办法
4万
查看次数

如何制作具有不同行大小的多维numpy数组?

我想创建一个二维numpy数组数组,每行有不同数量的元素.

cells = numpy.array([[0,1,2,3], [2,3,4]])
Run Code Online (Sandbox Code Playgroud)

给出错误

ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

42
推荐指数
4
解决办法
6万
查看次数

在pandas 0.10.1上使用pandas.read_csv指定dtype float32

我试图用pandas read_csv方法读取一个简单的空格分隔文件.但是,大熊猫似乎并没有遵守我的dtype观点.也许我错误地指定了它?

read_csv对于这个简单的测试用例,我已经提炼了一些复杂的调用.我实际上converters在我的"真实"场景中使用了这个参数,但为了简单起见我删除了它.

以下是我的ipython会话:

>>> cat test.out
a b
0.76398 0.81394
0.32136 0.91063
>>> import pandas
>>> import numpy
>>> x = pandas.read_csv('test.out', dtype={'a': numpy.float32}, delim_whitespace=True)
>>> x
         a        b
0  0.76398  0.81394
1  0.32136  0.91063
>>> x.a.dtype
dtype('float64')
Run Code Online (Sandbox Code Playgroud)

我也尝试过这种使用这种具有dtypenumpy.int32numpy.int64.这些选择导致异常:

AttributeError: 'NoneType' object has no attribute 'dtype'
Run Code Online (Sandbox Code Playgroud)

我假设AttributeError是因为pandas不会自动尝试将浮点值转换/截断为整数?

我正在使用32位版本的Python运行32位机器.

>>> !uname -a
Linux ubuntu 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:25:36 UTC 2011 i686 i686 i386 …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

将-inf替换为零值

我有一个数组:

x =  numpy.array([-inf, -inf, 37.49668579])
Run Code Online (Sandbox Code Playgroud)

有没有办法将-inf值更改为0?

python arrays numpy infinity

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

删除numpy数组的重复行

如何删除二维numpy数组的重复行?

data = np.array([[1,8,3,3,4],
                 [1,8,9,9,4],
                 [1,8,3,3,4]])
Run Code Online (Sandbox Code Playgroud)

答案应如下:

ans = array([[1,8,3,3,4],
             [1,8,9,9,4]])
Run Code Online (Sandbox Code Playgroud)

如果有两行相同,那么我想删除一个"重复"行.

python numpy

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

Windows + virtualenv + pip + NumPy(安装NumPy时出现问题)

在Windows上,我通常只使用二进制安装程序,但是这次我只想在virtualenv中安装NumPy,所以我创建了一个虚拟环境:

virtualenv --no-site-packages --distribute summary_python
cd summary_python/Scripts
activate.bat
Run Code Online (Sandbox Code Playgroud)

然后我尝试安装NumPy

pip install numpy
Run Code Online (Sandbox Code Playgroud)

我收到一个错误.我的pip.log粘贴在下面:

Downloading/unpacking numpy
  Running setup.py egg_info for package numpy
    non-existing path in 'numpy\\distutils': 'site.cfg'
    F2PY Version 2
    blas_opt_info:
    blas_mkl_info:
      libraries mkl,vml,guide not found in c:\Users\fname.lname\Documents\summary_python\lib
      libraries mkl,vml,guide not found in C:\
      NOT AVAILABLE

    atlas_blas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in c:\Users\fname.lname\Documents\summary_python\lib
      libraries ptf77blas,ptcblas,atlas not found in C:\
      NOT AVAILABLE

    atlas_blas_info:
      libraries f77blas,cblas,atlas not found in c:\Users\fname.lname\Documents\summary_python\lib
      libraries f77blas,cblas,atlas not found in C:\
      NOT AVAILABLE

    blas_info: …
Run Code Online (Sandbox Code Playgroud)

python windows numpy pip virtualenv

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

在NumPy中获取随机数的最佳方法是什么?

我想在该范围内生成随机数,-1, 1并希望每个人都有相同的生成概率.即我不希望极端情况不太可能出现.这样做的最佳方式是什么?

到目前为止,我使用过:

2 * numpy.random.rand() - 1
Run Code Online (Sandbox Code Playgroud)

并且:

2 * numpy.random.random_sample() - 1
Run Code Online (Sandbox Code Playgroud)

python random numpy

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

使用日期时间绘制切片的pandas数据帧时的KeyError

当我尝试绘制一个带有日期时间的pandas DataFrame列的切片时,我得到了一个KeyError.有人知道是什么原因引起的吗?

我设法在一个小的自包含示例中重现错误(您也可以在此处查看:http://nbviewer.ipython.org/3714142/):

import numpy as np
from pandas import DataFrame
import datetime
from pylab import *

test = DataFrame({'x' : [datetime.datetime(2012,9,10) + datetime.timedelta(n) for n in range(10)], 
                  'y' : range(10)})
Run Code Online (Sandbox Code Playgroud)

现在,如果我绘图:

plot(test['x'][0:5])
Run Code Online (Sandbox Code Playgroud)

没有问题,但是当我绘制时:

plot(test['x'][5:10])
Run Code Online (Sandbox Code Playgroud)

我得到下面的KeyError(错误消息对我来说不是很有帮助).这仅发生日期时间列,不能与其他列(据我所经历).例如,plot(test['y'][5:10])这不是问题.

Ther错误消息:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-7-aa076e3fc4e0> in <module>()
----> 1 plot(test['x'][5:10])

C:\Python27\lib\site-packages\matplotlib\pyplot.pyc in plot(*args, **kwargs)
   2456         ax.hold(hold)
   2457     try:
-> 2458         ret = ax.plot(*args, **kwargs)
   2459         draw_if_interactive()
   2460     finally:

C:\Python27\lib\site-packages\matplotlib\axes.pyc in plot(self, *args, …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib pandas

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

如何将pytorch张量转换为numpy数组?

我有一个火炬张量

a = torch.randn(1, 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 numpy 中得到它?

就像是

b = a.tonumpy()
Run Code Online (Sandbox Code Playgroud)

输出应该和我一样

b = np.random.randn(1, 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

python numpy pytorch

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