Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用列表访问ndarray_Python_Numpy - Fatal编程技术网

Python 使用列表访问ndarray

Python 使用列表访问ndarray,python,numpy,Python,Numpy,你能通过索引列表访问Ndaray吗? 我使用了下面的脚本,但我认为它太重了 import numpy as np def getIndex(indice, data_num): index = 0 for i in range(len(data_num)): index += indice[i] * data_num[i] return index def at(ndarr, indice): indice_num = ndarr.shape

你能通过索引列表访问Ndaray吗? 我使用了下面的脚本,但我认为它太重了

import numpy as np

def getIndex(indice, data_num):
    index = 0
    for i in range(len(data_num)):
        index += indice[i] * data_num[i]
    return index

def at(ndarr, indice):
    indice_num = ndarr.shape

    data_num = np.ones(ndarr.ndim)
    for vi in range(len(indice_num)-1):
        for ni in range(len(data_num)-vi-1):
            data_num[ni] *= indice_num[len(indice_num)-vi-1]
    print indice_num
    print data_num

    return ndarr.reshape(ndarr.size)[getIndex(indice, data_num)];

ndarr = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
print at(ndarr, [1,1,1]) # 5

是的,您只需要使用元组而不是列表:

>>> ndarr = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
>>> indices = [1,1]   # row,col
>>> ndarr[tuple(indices)]
5.0

是的,您只需要使用元组而不是列表:

>>> ndarr = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
>>> indices = [1,1]   # row,col
>>> ndarr[tuple(indices)]
5.0

??? 只是
ndarr[1,1]
???只是
ndarr[1,1]