Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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 Numpy:是否有方法为Numpy数组中的某个位置提供*名称*_Python_Arrays_Numpy - Fatal编程技术网

Python Numpy:是否有方法为Numpy数组中的某个位置提供*名称*

Python Numpy:是否有方法为Numpy数组中的某个位置提供*名称*,python,arrays,numpy,Python,Arrays,Numpy,我有一个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 &

我有一个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对应于描述变量ab之间关系的数据

现在,假设我想在X上运行一个条件,如下所示:

X>3,生成以下内容:

array([[False, False, False],
       [False, False, False],
       [ True,  True, False]])
然后,我如何确定a、b和c变量范围中的值对应哪些变量?我们知道这是c&ac&b,但我该如何提取这些信息呢

我想也许有一种方法可以在Numpy数组中为固定位置分配名称

我可以做我想做的事情如下:

y =  np.array([[  'a',   'a',  'a'],
         [  'b',   'b',  'b'],
         [  'c',  'c', 'c']])

z =  np.array([[  'a',   'b',  'c'],
         [  'a',   'b',  'c'],
         [  'a',  'b', 'c']])

y[x>3]

array(['c', 'c'], dtype='<U1')
y=np.array([['a','a','a'],
['b','b','b'],
['c','c','c']]
z=np.array([['a','b','c'],
[‘a’、‘b’、‘c’],
[‘a’、‘b’、‘c’]]
y[x>3]

数组(['c',c',dtype='另一种方法是只使用一个索引,然后用
np索引。其中

labels = np.array(['a','b','c'])

idx = np.array(np.where(X>3)).T
labels[idx]
输出:

array([['c', 'a'],
       ['c', 'b']], dtype='<U1')
数组([['c','a'],

['c','b']],dtype='你试过了吗?我知道我可以在pandas中完成这项工作,但我的实际数据集r有几个2500 x 2500数组,所以有600万条记录。考虑到涉及的数据大小和运行时间,pandas可能不是完成这项工作的最佳地点。我只试过使用10k x 10k的pandas,很好……通过numpy生成大小为2秒的随机数据,pandas takes~5毫秒将其转换为数据帧Pandas基本上是一个奇特的numpy包装器。Pandas在numpy上的开销可以忽略不计。
array([['c', 'a'],
       ['c', 'b']], dtype='<U1')