2015-10-05 14 views
6

numpy 1.7.1 नीचे कोड का उपयोग कर काम करता है और दिखाया गया है परिणाम पैदा करता है के साथ सरणी धुरी के आकार 5 के साथ अनुक्रम कॉपी कर सकते हैं नहीं,ValueError: आयाम 2

import pandas as pd 
import numpy as np 
d1 = pd.DataFrame({'Name': [1, 1, 1, 1, 1],'number': [1, 1, 1, 1, 1]}) 
d2 = pd.DataFrame({'Name': [1, 1, 1, 1, 1], 'number': [1, 1, 1, 1, 1]}) 
result = np.array([d1,d2]) 

Value of result is, 
array([ Name number 
0  1  1 
1  1  1 
2  1  1 
3  1  1 
4  1  1, 
      Name number 
0  1  1 
1  1  1 
2  1  1 
3  1  1 
4  1  1], dtype=object) 

लेकिन, numpy 1.9.2 एक ही इनपुट में नीचे के रूप में अपवाद,

पैदा करता है "ValueError: आयाम 2 के साथ सरणी धुरी के आकार 5 के साथ अनुक्रम कॉपी नहीं कर सकते"

कारण यह है कि इस आपरेशन या कुछ सामान्य ठीक है कि दोनों में इस्तेमाल किया जा सकता का समर्थन नहीं Numpy पता करने की आवश्यकता संस्करण। मैं वही प्रकार का आउटपुट चाहता हूं क्योंकि मैं numpy के दोनों संस्करणों में 1.7.1 में मिलता हूं।

उत्तर

5

मैं आपकी समस्या को numpy 1.9.2 के साथ पुन: उत्पन्न करने में सक्षम था। ऐसा लगता है कि numpy एक vstack करने की कोशिश कर रहा है। जब आकार एक जैसा होता है। मैंने निम्नलिखित दृष्टिकोण की कोशिश की और यह काम किया।

result = np.empty(2, dtype=object) 
result[:]= [d1, d2] 

result 
array([ Name number 
0  1  1 
1  1  1 
2  1  1 
3  1  1 
4  1  1, 
      Name number 
0  1  1 
1  1  1 
2  1  1 
3  1  1 
4  1  1], dtype=object) 
संबंधित मुद्दे