使用Python4Delphi,将Delphi方法公开给Python,以便Python可以调用到Delphi应用程序中是相当简单的。但是,我无法将由Delphi方法创建的Python列表返回给Python。例如:
function TDelphiAPI.callMethod : PPyObject;
begin
// Create a new empty list of three elements
result := GetPythonEngine.PyList_New(3);
end;
import mylib
p = mylib.DelphiAPI()
print p.call
这里我的代码:
ldata = []
for line in f:
tmp = line.strip().split(',')
ldata.append([float(i) for i in tmp[2:]])
print len(ldata),len(ldata[0])
cc = np.array(ldata)
print cc.shape
d = cc*0.25
结果:
4345,560
(4345,)
Traceback (most recent call last):
File "C:\Users\Che\workspace\recali.p
全
具有合理的大3d网格作为浮点数的NumPy数组,形状(nx,ny,nz)。具有相似(相同形状)的1和0的3d网格,本质上是位掩码。我想从基于位掩码的网格中选择数据,并在以后将它们用于直方图。
我现在要做的是
k = 0
for iz in range(0, nz):
for iy in range(0, ny):
for ix in range(0, nx):
d = data[ix, iy, iz]
b = bitmap[ix, iy, iz]
if b > 0:
当我在numpy多维数组中进行索引时,我有一个奇怪的问题。所以,我有一个形状数组(4,882)。我有另一个名为形状匹配(276,2)的数组。此匹配数组包含原始多维数组中有效条目的索引。我要做的是选择前2行和匹配匹配数组中的索引的所有列。因此,我所做的事情如下:
import numpy as np
k = get_array() # This has shape (4, 882)
m = get_match() # This has shape (276, 2)
s = k[[1, 0], m[:, 0]]
这会引发错误:
ValueError: shape mismatch: obje
我试图编写一个函数,它的参数是具有不同形状的数组。在理解列数组和使我的函数适用于所有数组形状方面,我遇到了一些困难,下面是我发现的问题:
Transposing:,如果参数数组A不是向量,那么我可以使用A.T很好地转换它,但是如果A是行向量,则不会将A转换为列向量。如果A是列向量,这将(奇怪地)将其转换为行向量。是否有一种方法可以独立于数组的形状进行转位?
点积带有标量的列向量的点积是列向量(耶!)。具有1元素numpy数组的列向量的点积是行向量(nayyy)。
A = array((1,2)).reshape(2,1) #this is how I make a column vector
我有一个形状为(256,256,3)的数据数组,其中轴(0,1)上的每个值都有值[1,0,0], [0,1,0],[0,0,1]或[1,1,0]。
我想将它转换为一个形状为(256,256,4)的数组,其中的值映射如下:
[1,0,0] -> [1,0,0,0]
[0,1,0] -> [0,1,0,0]
[0,0,1] -> [0,0,1,0]
[1,1,0] -> [0,0,0,1]
我试着使用一个循环,如下所示,但它不起作用。
for element in original_array:
if element == [1, 0, 0]:
ne
考虑有两个数组:
形状为A的(n,)
形状为B的(n,m)
如何将这两者相加,以便将A[i]添加到B[i]的所有m值中
当然,我可以用for循环来完成它,但是我想学习如何正确地使用numpy。
那么,有什么优雅的方法可以在“裸皮”中实现呢?
(n,) + (n,m)示例
A = [1,2]
B = [[1,2,3],[4,5,6]]
A + B should be [[2,3,4],[6,7,8]]
如何添加(n,) + (m,n)的另一种方式也会很有趣
A = [1,2,3]
B = [[1,2,3],[3,4,5]]
A + B should be [[2,4,6],[4,6,8]]
编辑
我目前正在尝试将多个Numpy数组追加到一起。基本上,我想做的是从一个(1xm)矩阵开始(从技术上讲是一个向量),最后得到一个(n X m)矩阵。因此,从n(1xm)矩阵(向量)到1 (n X m)矩阵(如果有任何意义的话)。这样做的最终目的是使用numpy.savetxt()函数将矩阵写入csv-file,这样我就得到了一个长度为m的n列的csv-file。
这样做的问题是,numpy.append()将向量添加到一个(1 X 2m)向量中。因此,假设a1和a2是Numpy数组,每个数组有10000个元素。我将使用append函数将a2附加到a1中,同时创建一个名为a的新数组,该数组同时包含
我有一些复数z数组,我想用函数ncol将其转换为rgb值。然后我想用它来创建游戏系统。这里的例子
import numpy as np
import cmath
z = np.array([[(complex(-(x/2),-(y/2))) for x in range(2)]for y in range(2)])
def ncol(z):
if cmath.phase(z)>180:
w = (255,255,255)
else:
w = (125,125,0)
return w
fz = np.frompyfunc(ncol,
我对python很陌生,我一直试图从excel文件中读取数据集,并将其存储在数组/列表中。
我正在使用"openpyxl“来处理excel文档,因此有一些非标准语法,然而,所有这些似乎都在工作,我相信问题在于二维数组位。
这可能是一个非常基本的新手错误,但由于我习惯于在C++工作,我有很大的困难找出它!
(为了清晰起见,我包括了打印语句,因为这就是我试图解决问题的方法)
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import math as mth
impo
我最近在使用例如创建Numpy对象数组时遇到了一些问题。
a = np.array([c], dtype=np.object)
其中c是某个复杂类的实例,在某些情况下,Numpy会尝试访问该类的一些方法。但是,执行以下操作:
a = np.empty((1,), dtype=np.object)
a[0] = c
解决了问题。我很好奇这两者在内部有什么不同。为什么在第一种情况下,Numpy会尝试访问c的一些属性或方法
编辑:对于该记录,以下是演示该问题的示例代码:
import numpy as np
class Thing(object):
def __getitem__(sel
我正在处理netcdf文件中的数据,多维变量,读取到numpy数组中。我需要扫描所有维度(numpy中的轴)中的所有值,并修改一些值。但是,我不知道任何给定变量的维数。当然,在运行时,我可以获得numpy数组的ndim和形状。如何在不预先知道维度或形状的情况下,通过所有值编写一个循环?如果我知道一个变量正好是二维,我会这样做。
shp=myarray.shape
for i in range(shp[0]):
for j in range(shp[1]):
do_something(myarray[i][j])