मेरी अपेक्षा के अनुसार निम्न पंक्तियां क्यों काम नहीं करतीं?डबल-कटा हुआ numpy arrays के लिए असाइनमेंट क्यों काम नहीं करता है?
import numpy as np
a = np.array([0,1,2,1,1])
a[a==1][1:] = 3
print a
>>> [0 1 2 1 1]
# I would expect [0 1 2 3 3]
क्या यह एक 'बग' है या क्या इसका कोई अन्य अनुशंसित तरीका है?
दूसरी ओर, निम्नलिखित काम करता है:
a[a==1] = 3
print a
>>> [0 3 2 3 3]
चीयर्स, फिलिप
मैंने एक दूसरा उदाहरण जोड़ा जो मुझे उम्मीद है जैसे काम करता है। मैं वास्तव में अंतर नहीं देखता हूं। असाइनमेंट "माध्यम से पाइप" नहीं होना चाहिए? –
मुझे नहीं लगता कि यह काफी सही है। यदि आप 'a [a == 1] = 3' करते हैं, जो वास्तव में ए की सामग्री को बदलता है। –
@ डेव - मुझे लगता है कि यह पेरिमोसोकोडिया सही है, और यह कि आपका काउंटर-उदाहरण किसी जगह में ऑपरेशन की उपस्थिति बनाने के लिए नुकीले आंतरिक में एक हैक की तरह कुछ और है। – tom10