मेरे पास है:सूचियों और सरणियों के साथ numpy सरणी अनुक्रमण
>>> a
array([[1, 2],
[3, 4]])
>>> type(l), l # list of scalers
(<type 'list'>, [0, 1])
>>> type(i), i # a numpy array
(<type 'numpy.ndarray'>, array([0, 1]))
>>> type(j), j # list of numpy arrays
(<type 'list'>, [array([0, 1]), array([0, 1])])
जब मैं
>>> a[l] # Case 1, l is a list of scalers
कर रहा
array([[1, 2],
[3, 4]])
जिसका अर्थ है अनुक्रमण 0 अक्ष पर केवल हुआ मिलता है।
लेकिन मैं
array([1, 4])
जिसका अर्थ है अनुक्रमण अक्ष 0 और अक्ष 1 साथ हुआ मिलता है जब मैं
>>> a[j] # Case 2, j is a list of numpy arrays
है।
प्रश्न 1: जब अनुक्रमण के लिए उपयोग किया जाता है, तो स्केलर्स की सूची और numpy arrays की सूची के उपचार में कोई अंतर क्यों है? (केस 1 बनाम केस 2)। केस 2 में, मैं अनुक्रमण केवल अक्ष 0 के साथ हुआ देख सकते हैं और
array([[[1,2],
[3,4]],
[[1,2],
[3,4]]])
पाने के लिए उम्मीद कर रही थी अब, जब बजाय
>>> j1 = np.array(j) # numpy array of arrays
परिणाम के नीचे इंगित करता है कि अनुक्रमण केवल साथ हुआ सरणियों के numpy सरणी का उपयोग कर अक्ष 0 (अपेक्षित रूप से)
>>> a[j1] Case 3, j1 is a numpy array of numpy arrays
array([[[1, 2],
[3, 4]],
[[1, 2],
[3, 4]]])
Q2: जब अनुक्रमण के लिए उपयोग किया जाता है, यही कारण है कि NumPy सरणी की सूची और के उपचार में एक अंतर है n numpy arrays की अजीब सरणी? (केस 2 बनाम केस 3)
क्यू 1 के लिए, 'k = [[0,1], [0,1]] का उपयोग करने के लिए गैर-गंदे एनालॉग नहीं है; a [k] '? उस स्थिति में, आप सूचियों की सूची और नम्पी सरणी की एक सूची के बीच एक ही व्यवहार देखते हैं। –
इसे देखने का एक और तरीका यह है कि '[जे [जे जे] जे जे में जे] के लिए आपको' क्यू 1 में क्या उम्मीद है। सूचियों की एक सूची को इनपुट करना, चाहे कोई नुकीला सरणी हो या नहीं, मूल रूप से एक समय में सूचकांक के एक सेट को वापस कर रहा है। –