[PYTHON] Summencode mit Numpy

Als ich mir die Numpy-Referenz ansah, fand ich eine nützliche Funktion für die Bitverarbeitung Ich habe auch einen Brummcode zum Testen implementiert. Derzeit wird nur der Brummcode (4,3) unterstützt. Ich wünschte, ich könnte andere als uint8 unterstützen.

hamming.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import random

if __name__ == '__main__':
    k = 4
    m = 3

    #Erstellen Sie eine Liste von Nicht-Strom 2
    column_values = np.array([ [x] for x in range( 2 ** m ) if ( x & ( x - 1 ) ) != 0 ], dtype=np.uint8 )
    A = np.reshape( np.unpackbits( column_values ), ( k, 8) )[:, -3:].T

    #Erstellen Sie eine Generierungsmatrix und eine Prüfmatrix
    H = np.concatenate( ( A, np.eye( m, dtype=np.uint8 ) ), axis=1 )
    G = np.concatenate( ( np.eye( k, dtype = np.uint8 ), A.T ), axis = 1 )

    #Stellen Sie den zu codierenden Wert entsprechend ein
    random.seed()
    code = random.randint( 0, 2 ** k - 1 )
    bit_code = np.unpackbits( np.array( code, dtype = np.uint8 ) )[-k:]

    #Generieren Sie einen Brummcode, um ein wenig zu invertieren
    error_bit_offset = random.randint( 0, ( k + m ) - 1 )
    hamming_code = np.dot( bit_code, G ) % 2
    hamming_code[ error_bit_offset ] = ( hamming_code[ error_bit_offset ] + 1 ) % 2

    #Überprüfung

    check_result = np.dot( H, hamming_code ) % 2

    print code
    print hamming_code
    print H
    print error_bit_offset
    print check_result

Ausführungsergebnis

% ./hamming.py 
12
[1 0 0 0 1 1 0]
[[0 1 1 1 1 0 0]
 [1 0 1 1 0 1 0]
 [1 1 0 1 0 0 1]]
1
[1 0 1]

Recommended Posts

Summencode mit Numpy
Mit Codetest stärken ⑨
Gleitender Durchschnitt mit Numpy
Mit Codetest stärken ⑤
Mit Codetest stärken ④
Debuggen mit VS-Code mit Boost Python Numpy
Mit Codetest stärken ②
Erste Schritte mit Numpy
Lernen Sie mit Chemo Informatics NumPy
Verkettung von Matrizen mit Numpy
Mit Codetest stärken ①
Führen Sie eine Regressionsanalyse mit NumPy durch
Erweitern Sie NumPy mit Rust
Mit Codetest stärken ⑧
Mit Codetest stärken ⑨
Kernel-Regression nur mit Numpy
Holen Sie sich den Ländercode mit Python
Python mit VSCode (Windows 10)
Ich habe GP mit Numpy geschrieben
CNN-Implementierung mit nur Numpy
Künstliche Datengenerierung mit Numpy
[Python] Berechnungsmethode mit numpy
Schuldenrückzahlungssimulation mit Numpy
SMO mit Python + NumPy implementiert
Kleben Sie die Saiten mit Numpy zusammen
Debuggen Sie Python mit VS-Code
Behandle numpy Arrays mit f2py
Überprüfen Sie den Code mit flake8
Verwenden Sie OpenBLAS mit numpy, scipy
Dokumentieren Sie Python-Code mit Doxygen
Implementierung der logistischen Regression mit NumPy
QR-Code mit CNN entschlüsseln
Führen Sie eine minimale quadratische Anpassung mit numpy durch.
Java mit Visual Studio Code (Teil 2)
Klassifizieren Sie "Wein" mit TensorFlow MLP-Code
Zeichne einen schönen Kreis mit Numpy
Implementieren Sie Keras LSTM Feed Forward mit Numpy
Versuchen Sie, Jupyter mit VS-Code auszuführen
Extrahieren Sie mehrere Elemente mit dem Numpy-Array
Es war mit Nintendos Code Puzzle
Installieren Sie Python mit Mac vs Code
Lesen und Schreiben von CSV-Dateien mit Numpy
Japanisches Diagramm mit VS Code + matplotlib anzeigen
Zeichnen Sie Dreiecksfunktionen mit Numpy und Matplotlib
Ich habe ein Lebensspiel mit Numpy gemacht
Beschleunigung numerischer Berechnungen mit NumPy: Basics
Behandle numpy mit Cython (Methode von memoryview)
Verwenden Sie BLAS / LAPACK mit mehreren Threads mit numpy / scipy