को दोबारा नहीं बदल सकता है मेरे पास एक ऐसा फ़ंक्शन है जो पूर्णांक की 1 डी सरणी लेता है और इसे 1x3 सरणी के 2 डी सरणी में आकार देता है। यह तब प्रत्येक 1x3 सरणी लेना और इसे 3x1 सरणी में स्थानांतरित करना है। नतीजा 3x1 सरणी का 2 डी सरणी माना जाता है। यहां मेरा फ़ंक्शनnumpy array
def RGBtoLMS(rgbValues, rgbLength): #Method to convert from RGB to LMS
print rgbValues
lmsValues = rgbValues.reshape(-1, 3)
print lmsValues
for i in xrange(len(lmsValues)):
lmsValues[i] = lmsValues[i].reshape(3, 1)
return lmsValues
समस्या तब बढ़ती है जब मैं 1x3 सरणी को 3x1 सरणी में बदलने की कोशिश करता हूं। मैं निम्नलिखित उत्पादन संभालने rgbValues = [14, 25, 19, 24, 25, 28, 58, 87, 43]
[14 25 19 ..., 58 87 43]
[[14 25 19]
[24, 25, 28]
[58 87 43]]
ValueError [on line lmsValues[i] = lmsValues[i].reshape(3, 1)]: could not broadcast input array from shape (3,1) into shape (3)
मैं कैसे इस त्रुटि से बचने कर सकते हैं?
जब आप कहते हैं कि 1x3 सरणियों के 2 डी सरणी, यह आकार की है (, एन, एन 1, 3)? यहां एक उदाहरण स्पष्टीकरण में मदद कर सकता है! –
मुख्य मुद्दा यह है कि 'lmsValues' की प्रत्येक प्रविष्टि में पहले से ही एक निर्दिष्ट आकार है, इसलिए किसी भिन्न आकार के साथ कुछ असाइन करने की अनुमति नहीं है। हालांकि, मैं आपके इनपुट के एक साधारण उदाहरण की तुलना में @ एंडीहेडन से सहमत हूं और अपेक्षित आउटपुट आपके प्रश्न का उत्तर देने में सहायक होगा। – cm2
संपादित, अब यह अधिक स्पष्ट होना चाहिए –