我有一个像a = np.zeros((100,100, 20))这样的三维数字数组。我希望对每个x,y位置执行一项操作,该操作涉及z轴上的所有元素,并且结果存储在一个数组中,比如在相同的x,y位置上的b = np.zeros((100,100))。
现在,我使用for循环来完成这个任务:
d_n = np.array([...]) # a parameter with the same shape as b
for (x,y), v in np.ndenumerate(b):
C = a[x,y,:]
### calculate some_value using C
我想创建三维直方图,但我不知道为什么X轴有Y标签和Y轴有X轴。怎么啦?
xAmplitudes = ([0 for i, j in zip(x, width)])
yAmplitudes = centre_y
x = np.array(xAmplitudes) #turn x,y data into numpy arrays
y = np.array(yAmplitudes)
fig = plt.figure() #create a canvas, tell matplotlib it's 3d
ax = fig.add_subplot(111, proje
我下载了一个数据集,其中包含一个名为“depths.mat”的MATLAB文件,其中包含一个三维矩阵,其维数为480 x 640 x 1449。这些实际上是1449张图像,每个图像的维数都是640 x 480。我使用the库成功地将它加载到python中,但问题是维度的不寻常顺序。这使得Python认为有480幅尺寸为640 x 1449的图像。我试图在python中重新构造矩阵,但是简单的整形操作并没有解决我的问题。
欢迎任何建议。谢谢。
我试着把一个三维数组“倒置”成: ? 我尝试过inverse函数,但如果我们从数学角度看逆运算,它会给出另一个结果。我需要在不更改数组中的数据的情况下进行转换。如何做到这一点? 为了将三维数组(A x B x C)拆分成A子数组(2d,B x C),我使用了squeeze:k=squeeze(array(n,:,:))。现在我有了一个大小为B x C的二维数组。如何将其重新组合在一起(在三维数组中)? ?
我希望将三维NumPy数组的第一个和最后一个维度组合为一维,而不复制数据:
import numpy as np
data = np.empty((3, 4, 5))
data = data.transpose([0, 2, 1])
try:
# this fails, indicating that it is not possible:
# AttributeError: incompatible shape for a non-contiguous array
data.shape = (-1, 4)
except AttributeError:
# this cre
我有一个RGB图像,并希望将以下公式应用于它,以便我获得另一个图像。我该怎么做呢?我知道如何读/写图像,我知道如何循环和应用公式,但我不知道如何提取变量中图像的行数和列数以及三维平面中3个平面的图像像素值。
I = imread('myimage.jpg');
RGBImagePixles = [?, ?, ?] %of I
ROWS = ? %of I
COLUMNS = ? %of I
for r = 0 : ROWS
for c = 0 : COLUMNS
N[r, c] = RGBImagePixles[r,c,1] + RGBImagePixl
假设我有一个数组
a = numpy.arange(8*6*3).reshape((8, 6, 3))
#and another:
l = numpy.array([[0,0],[0,1],[1,1]]) #an array of indexes to array "a"
#and yet another:
b = numpy.array([[0,0,5],[0,1,0],[1,1,3]])
其中"l“和"b”的长度相等,我想说
a[l] = b
使得a变成0,0,5,a变成0,1,0等等。
当我得到一维数组时,它
我试着用一个非常简单的三维矢量场测试流线型。我使用3 for循环填充一个网格(不是最好的,但这让人想起"v“的另一个表达式,我很难将它矢量化)。然后将向量场v定义为r.简单径向场。我的完整代码在下面。quiver3很好,但不幸的是,流线型给了我以下错误:
使用插值的griddedInterpolant误差要求每个维至少有两个样本点。
N = 5;
L = 2;
dl = 2*L/N;
for i = 1:N+1
for j = 1:N+1
for k = 1:N+1
x = -L + (i-1)*dl;
y = -L
我有两个三维(3x4x5)的numpy数组,我想将它们连接起来,这样结果就有四个维数(3x4x5x2)。在Matlab中,这可以用cat(4, a, b)来完成,但在Numpy中不能。
例如:
a = ones((3,4,5))
b = ones((3,4,5))
c = concatenate((a,b), axis=3) # error!
为了澄清,我希望c[:,:,:,0]和c[:,:,:,1]与最初的两个数组相对应。