我正在编写一个程序,它将用一个从二维numpy数组中提取的元素追加一个列表。到目前为止,我已经:
# For loop to get correlation data of selected (x,y) pixel for all bands
zdata = []
for n in d.bands:
cor_xy = np.array(d.bands[n])
zdata.append(cor_xy[y,x])
每次运行我的程序时,我都会得到以下错误:
Traceback (most recent call last):
File "/home/sdelgadi/
如果你有一个python的列表,并且想要将索引为1,2和5的元素提取到一个新的列表中,你会怎么做呢?
我是这样做的,但我不是很满意:
>>> a
[10, 11, 12, 13, 14, 15]
>>> [x[1] for x in enumerate(a) if x[0] in [1,2,5]]
[11, 12, 15]
有没有更好的方法?
一般来说,给定一个索引元组,你如何使用这个元组从列表中提取相应的元素,即使有重复(例如,元组(1,1,2,1,5)产生[11,11,12,11,15])。
有没有办法通过选择不同的列和行来从dataframe中提取数据。例如,我想要来自行1-100的第三列数据和来自行101-200的第二列数据。我目前正在使用for循环,但如果有更快的选项就更好了。 low_data =[]
up_data = []
for i in range(200):
low = df.iloc[i,2]
up = df.iloc[i,1]
low_data.append(low)
up_data.append(up)
看看MATLAB中的以下代码: a = [1,2; 5,6]
b = [-1,1; -1,1]
d = a(b(:)>0) 现在d将是2x1数组,2;6。这是因为数组b只在位置(1,2)和(2,2)处具有正条目,并且代码的第三行在这些位置提取a的元素。 在Python中有没有一个等价的方法可以做到这一点?我搜索了numpy文档,但没有找到任何文档。在我的实际代码中,我有多个大型多维数组,我希望根据其他数组的元素从这些数组中提取元素。当然,这可以通过嵌套的for循环来完成,但如果有像MATLAB这样更好的方法,那就更好了。
我有一个3x3Numpy数组:
X = np.array([[ 0., 2., 0.],
[ 0., 0., 0.],
[ 4., 22., 0.]])
其中,数组X中的每个位置对应于以下变量之间的某种关系:
[ a & a, a & b, a & c]
[ b & a, b & b, b & c]
[ c & a, c & b, c & c]
因此,在示例数组X中,数字2对应于描述变量a和b之间关系的数据。
现在,假设我想在X上
但我没有索引值,只是在不同数组中的相同索引中有一个。例如,我有
a = array([3,4,5,6])
b = array([0,1,0,1])
是否有一些NumPy方法可以快速查看这两种方法,并从a中提取所有值,这些值的索引与b中所有1的索引相匹配?我希望这样做的结果是:
array([4,6])
可能值得一提的是,我的a数组是多维的,而我的b数组总是具有0或1的值。我尝试使用NumPy的logical_and函数,尽管这会返回具有不同维度的a和b的ValueError:
a = numpy.array([[3,2], [4,5], [6,1]])
b = numpy.array([0,
我有一个二维数组(n X m),我想用一个长度为n的行索引列表来生成一个一维数组(长度n)。 例如: 2d = ([a,b,c],[d,e,f],[g,h,i]) # input array
1d = ([0,2,1]) # row numbers
result = ([a,e,h]) # array of the first row of first column, third row of second column, second row of third column 我已经找到了一种使用列表理解的方法(同时迭代列和索引并提取值),但是肯定有一个numpy函数可以做到这一点?
因此,我有一个包含数据的矩阵和一个包含从矩阵中提取数据的信息的向量。真正的矩阵要长得多,但下面是一个简短的版本,只是为了说明我的意思。
Data matrix = array([[1 2 3],[0 3 5],[1 4 4]])
Info vector = array([[1], [0], [2]])
Answer matrix = array([[2 (the second element)], [0(the first element)], 4(the third element)]])
简单的循环:
length_data = data.shapes[0]
for i in xrang