python - 列表索引必须是整数,而不是元组?

标签 python python-2.7

我得到了一个 1024*1024*360 的 .mat 文件,即 3D 对象。我将数据分为三个 .mat 文件 A、B 和 C。这三个文件都是 1024*1024*120 。我将它们加载到矩阵“mat”,即 1024*360 。我将它们一一加载,然后删除它们以腾出空间。基本上它只是 3D 对象在点 240 处的 2D 切片。稍后我尝试绘制图像。以下是我的代码:

import scipy.io 

import numpy as np
mat = np.zeros((1024,360))

x = scipy.io.loadmat('/home/imaging/Desktop/PRAKRITI/Project/A.mat')  
x = x.values()           
mat[:,0:120]= x[240,:,:]
del x


y = scipy.io.loadmat('/home/imaging/Desktop/PRAKRITI/Project/B.mat')
y = y.values()
mat[:,120:240]= y[240,:,:]
del y


z = scipy.io.loadmat('/home/imaging/Desktop/PRAKRITI/Project/C.mat')
z = z.values()
mat[:,240:360]= z[240,:,:]
del z


import matplotlib.py as plt
imageplot = plt.imshow(matrix)

我收到此错误:

mat[:,0:120]= x[240,:,:]
TypeError: List indices must be integers, not tuple

任何人都可以建议我在这里做错了什么吗?

最佳答案

您必须从原始 x 矩阵创建一个 numpy 数组。 这就是为什么普通的Python数组不接受numpy类型的花式索引,就像矩阵[x,y,z]只像矩阵[x][y][z]一样。

import scipy.io 

import numpy as np
mat = np.zeros((1024,360))

x = scipy.io.loadmat('/home/imaging/Desktop/PRAKRITI/Project/A.mat')  
x = np.array((x.values()))
mat[:,0:120]= x[240,:,:]
del x


y = scipy.io.loadmat('/home/imaging/Desktop/PRAKRITI/Project/B.mat')
y = np.array((y.values()))
mat[:,120:240]= y[240,:,:]
del y


z = scipy.io.loadmat('/home/imaging/Desktop/PRAKRITI/Project/C.mat')
z = np.array((z.values()))
mat[:,240:360]= z[240,:,:]
del z


import matplotlib.py as plt
imageplot = plt.imshow(matrix)

或者,您可以使用 x[240][:][:] 代替 x[240,:,:]

很高兴能提供帮助!如果您觉得我的回答对您有用,请随意采纳。 :-)

continuing:

因为下面的代码工作正常,我猜问题出在加载的矩阵维度上,即 x.values() 等。所以请先使用 print x.shape() 检查它。

import numpy as np

mat = np.zeros((1024,360))
x = np.zeros((1024,1024,120))

mat[:,0:120] = x[240,:,:]

print mat

[[ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 ..., 
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]]

关于python - 列表索引必须是整数,而不是元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31065054/

相关文章:

python - 为什么 Python 中没有元组理解?

django - 在 Django 的基于类的 View 中模拟函数

python - Arelle 使用 Python 自动化将数据传输到 Excel 的小程序

javascript - 使用 selenium Python 单击 javascript 按钮

python - Pandas 定向 dict 不读取列名称并显示 _0、_1

python - 获取python的itertools循环当前元素

Python 2.7——让测试脚本模拟 raw_input

python - 高维向量的最佳聚类算法

linux - 在 Python 中,在 Linux 上列出目录中的某种类型的文件

python-2.7 - 使用 .bind 时如何传递参数?