小编Car*_* F.的帖子

如何在类似于Matlab的blkproc(blockproc)函数的块中有效地处理numpy数组

我正在寻找一种有效的方法来有效地将图像分成小区域,分别处理每个区域,然后将每个过程的结果重新组合成单​​个处理过的图像.Matlab有一个名为blkproc的工具(blockproc在较新版本的Matlab中取代).

在理想世界中,函数或类也支持输入矩阵中的分区之间的重叠.在Matlab帮助中,blkproc定义为:

B = blkproc(A,[mn],[mborder nborder],有趣,...)

  • A是你的输入矩阵,
  • [mn]是块大小
  • [mborder,nborder]是边界区域的大小(可选)
  • fun是一个应用于每个块的函数

我已经采取了一种方法,但它让我觉得笨拙,我敢打赌,这是一个更好的方法.冒着我自己的尴尬,这是我的代码:


import numpy as np

def segmented_process(M, blk_size=(16,16), overlap=(0,0), fun=None):
    rows = []
    for i in range(0, M.shape[0], blk_size[0]):
        cols = []
        for j in range(0, M.shape[1], blk_size[1]):
            cols.append(fun(M[i:i+blk_size[0], j:j+blk_size[1]]))
        rows.append(np.concatenate(cols, axis=1))
    return np.concatenate(rows, axis=0)

R = np.random.rand(128,128)
passthrough = lambda(x):x
Rprime = segmented_process(R, blk_size=(16,16), 
                           overlap=(0,0), 
                           fun=passthrough)

np.all(R==Rprime)
Run Code Online (Sandbox Code Playgroud)

python matlab numpy image-processing scipy

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

Python中速度最快的2D卷积或图像滤镜

几个用户询问在numpy的或SciPy的图像卷积的速度或存储器消耗[ 1,2,3,4 ].从回答和我使用Numpy的经验来看,我相信与Matlab或IDL相比,这可能是numpy的一个主要缺点.

到目前为止,答案都没有解决整个问题,所以这里是:"在Python中计算2D卷积的最快方法是什么?" 常见的python模块是公平游戏:numpy,scipy和PIL(其他?).为了进行具有挑战性的比较,我想提出以下规则:

  1. 输入矩阵分别为2048x2048和32x32.
  2. 单精度或双精度浮点都是可以接受的.
  3. 将输入矩阵转换为适当格式所花费的时间不计算 - 只是卷积步骤.
  4. 用你的输出替换输入矩阵是可以接受的(任何python库支持吗?)
  5. 对常见C库的直接DLL调用是好的 - lapack或scalapack
  6. PyCUDA就出局了.使用自定义GPU硬件是不公平的.

python optimization numpy scipy python-imaging-library

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

一般Mysql数据库维护建议

我有大约40个具有相同模式的数据库.我能做些什么来确保这些数据库顺利运行?

我应该定期优化表格吗?如何检测表崩溃?

mysql database

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

用于在Python中编程GUI的WYSIWYG工具?

我希望找到类似于Borland Delphi或VisualBasic for Python的工具.基本上,我希望能够轻松编写Windows应用程序,而无需对每个小部件进行编码.这样的软件存在吗?谢谢!

python user-interface qt wxpython pyqt4

11
推荐指数
1
解决办法
9217
查看次数

如何使用matplotlib打印摄氏度符号?

我想打印一个轴标签:"温度(℃)".我该怎么做?一个片段是这样的:

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
x = range(10,60,1)
y = range(-100, 0, 2)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
ax.set_xlabel('Temperature (?)')
Run Code Online (Sandbox Code Playgroud)

对于最后一行,我尝试过:

ax.set_xlabel('Temperature (?)'.encode('utf-8'))

ax.set_xlabel(u'Temperature (u\2103)')

ax.set_xlabel(u'Temperature (?)')

ax.set_xlabel(u'Temperature (\u2103)')

ax.set_xlabel('Temperature (\u2103)')
Run Code Online (Sandbox Code Playgroud)

我只是不明白.我正在使用spyder并从那里运行代码.

python unicode latex matplotlib

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

mysql-python安装问题(在ma​​c os x lion上)

我成功安装了所有东西,或者我认为:

  • MySQL 5.5 for x86_64.
  • Python 2.7,x86_64.
  • mysql-python 1.2.3,x86_64.

但是当我尝试:

import MySQLdb
Run Code Online (Sandbox Code Playgroud)

我明白了:

    ImportError: 
dlopen(/Users/aj/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-ix86_64.egg-tmp/_mysql.so, 2): 
no suitable image found.  
Did find:   
/Users/aj/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-ix86_64.egg-tmp/_mysql.so: mach-o, 
but wrong architecture
Run Code Online (Sandbox Code Playgroud)

我还能错过什么?

我的系统当然也是64位版本,uname -a给出:

Darwin ajmacbook.local 11.1.0 Darwin Kernel Version 11.1.0: Tue Jul 26 16:07:11 PDT 2011; root:xnu-1699.22.81~1/RELEASE_X86_64 x86_64
Run Code Online (Sandbox Code Playgroud)

我想我已经阅读了大部分关于这个主题的SO答案和谷歌搜索结果,想不出其他任何想法.任何建议将不胜感激.

python mysql macos installation

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

matplotlib.mlab.griddata非常慢,并在输入有效数据时返回nan数组

我试图将具有相关纬度和经度的不规则网格化数据集(原始卫星数据)映射到由给定的经常网格化的纬度和经度集basemap.makegrid().我使用matplotlib.mlab.griddatampl_toolkits.natgrid安装.下面是whosipython中用作输出的变量列表以及变量的一些统计信息:

Variable   Type       Data/Info
-------------------------------
datalat    ndarray    666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb)
datalon    ndarray    666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb)
gridlat    ndarray    1200x1000: 1200000 elems, type `float64`, 9600000 bytes (9 Mb)
gridlon    ndarray    1200x1000: 1200000 elems, type `float64`, 9600000 bytes (9 Mb)
var        ndarray    666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb)

In [11]: var.min()
Out[11]: -30.0

In [12]: var.max()
Out[12]: 30.0

In [13]: …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib scipy map-projections

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

Python HDF5 H5Py会发出打开多个文件的问题

我使用64位版本的Enthought Python来处理多个HDF5文件中的数据.我在64位Windows上使用h5py版本1.3.1(HDF5 1.8.4).

我有一个对象为我的特定数据层次提供了方便的接口,但是测试h5py.File(fname,'r')会产生相同的结果.我正在遍历一个长列表(一次约100个文件)并尝试从文件中提取特定的信息.我遇到的问题是我从几个文件中获取相同的信息!我的循环看起来像:

files = glob(r'path\*.h5')
out_csv = csv.writer(open('output_file.csv', 'rb'))

for filename in files:
  handle = hdf5.File(filename, 'r')
  data = extract_data_from_handle(handle)
  for row in data:
     out_csv.writerow((filename, ) +row)
Run Code Online (Sandbox Code Playgroud)

当我使用hdfview之类的东西检查文件时,我知道内部结构是不同的.但是,我得到的csv似乎表明所有文件都包含相同的数据.以前有人见过这种行为吗?我有什么建议可以开始调试这个问题吗?

python hdf5 h5py

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

如何在同一图表上绘制4个直方图


我有以下问题:
我在matplotlib.pyplot中使用hist()
我试图在同一个图上创建4个直方图.并且每个都有一个近似高斯分布.
如何在同一图表上绘制4个直方图,而不会相互阻塞(并排)?有任何想法吗?

python matplotlib histogram

4
推荐指数
1
解决办法
5600
查看次数

如何启动 Python ipython shell,在其中自动运行一些命令,并保持打开状态?

我试过

echo "print 'hello'" | ipython
Run Code Online (Sandbox Code Playgroud)

它运行命令,但 ipython 之后立即退出。

有任何想法吗?谢谢!

编辑: 我实际上需要将命令传递到交互式 Django shell,例如:

echo "print 'hello'" | python manage.py shell
Run Code Online (Sandbox Code Playgroud)

所以建议的 -i 开关 gimel 似乎不起作用(shell 在执行后仍然退出)

python bash shell ipython

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

如何将大地位置转换为与Cesium中的地形模型一起使用的ECF位置

我想在Cesium的珠穆朗玛峰上面点一点.我昨晚最有可能的候选人是我借用来进行eodef转换的代码(来自PySatel.coord).今天上午审查后,似乎是正确的:

a = 6378.137
b = 6356.7523142
esq = 6.69437999014 * 0.001
e1sq = 6.73949674228 * 0.001
f = 1 / 298.257223563


def geodetic2ecef(lat, lon, alt):
    """Convert geodetic coordinates to ECEF.

    Units are degrees and kilometers.
    """
    lat, lon = radians(lat), radians(lon)
    xi = sqrt(1 - esq * sin(lat))
    x = (a / xi + alt) * cos(lat) * cos(lon)
    y = (a / xi + alt) * cos(lat) * sin(lon)
    z = (a / xi * (1 …
Run Code Online (Sandbox Code Playgroud)

gis geospatial coordinate-systems cesium czml

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