में सममित मैट्रिस उत्पन्न करना मैं समरूप में सममित मैट्रिक्स उत्पन्न करने की कोशिश कर रहा हूं। विशेष रूप से, इन मैट्रिस में यादृच्छिक स्थान प्रविष्टियां होती हैं, और प्रत्येक प्रविष्टि में सामग्री यादृच्छिक हो सकती है। मुख्य विकर्ण के साथ हम वहां मौजूद चीजों से चिंतित नहीं हैं, इसलिए मैंने उनको यादृच्छिक बना दिया है।न्यूम्पी
मैंने जो दृष्टिकोण लिया है वह पहले एनएक्सएन को सभी शून्य मैट्रिक्स उत्पन्न करता है और बस मैट्रिस के सूचकांक पर लूप उत्पन्न करता है। हालांकि, लूपिंग पर विचार करने के लिए पाइथन में अपेक्षाकृत महंगा है, मुझे आश्चर्य है कि क्या मैं पाइथन के लूप के बिना एक ही चीज़ को स्वीकार कर सकता हूं।
क्या कुछ चीजें numpy में बनाई गई हैं जो मुझे अपने लक्ष्य को और अधिक कुशलता से प्राप्त करने की अनुमति देती है?
import numpy as np
import random
def empty(x, y):
return x*0
b = np.fromfunction(empty, (n, n), dtype = int)
for i in range(0, n):
for j in range(0, n):
if i == j:
b[i][j] = random.randrange(-2000, 2000)
else:
switch = random.random()
random.seed()
if switch > random.random():
a = random.randrange(-2000, 2000)
b[i][j] = a
b[j][i] = a
else:
b[i][j] = 0
b[j][i] = 0
धन्यवाद! यह एक कुशल समाधान है। हालांकि, क्या मैं कुछ जगहों पर यादृच्छिक रूप से शून्य स्थानों को रखने के लिए इसे प्राप्त कर सकता हूं? यह मैट्रिक्स एक ग्राफ के लिए आसन्नता मैट्रिक्स के एक प्रकार का प्रतिनिधित्व करना चाहिए, इसलिए यादृच्छिक रूप से वितरित शून्य के साथ एक मैट्रिक्स होना बेहतर है। – Ryan
@Ryan: क्या आपको परवाह है कि यादृच्छिक प्रविष्टियों के किस प्रकार का वितरण है? यदि आप 'बी + बीटी' जोड़ते हैं, तो आपको 0. – unutbu
पर ध्यान केंद्रित एक गैर-वर्दी वितरण मिलेगा, मैं matrices के कुछ गुणों को सत्यापित कर रहा हूं।कुछ गणितीय गुणों के ठोस सबूत प्रदान करने के लिए यह एक और प्रयास है, इसलिए यहां वितरण इतना महत्वपूर्ण नहीं है। हालांकि धन्यवाद! – Ryan