2013-07-03 54 views
8

Tôi có mã python trong đó tôi phải chuyển đổi mảng 2D thành ma trận 2D để tôi có thể sử dụng nó để tính toán nghịch đảo.Đối với tôi đang sử dụng numpy.matrix (mảng) nhưng nó không hoạt động. Bất cứ ai có thể nói làm thế nào để chuyển đổi một mảng 2D thành một ma trận numpy? Mảng bao gồm tất cả các số phaochuyển đổi mảng 2D thành mảng 2D thành

+1

Inverse của [NumPy ma trận để mảng] (http://stackoverflow.com/questions/3337301/numpy-matrix-to-array) –

+2

Bạn cũng có thể gọi 'np.linalg.inv' trên mảng trực tiếp. –

Trả lời

18

Nếu a là mảng của bạn, np.asmatrix(a) là ma trận.

+0

lỗi Tệp "C: \ xampp \ htdocs \ webdev \ 123.py", dòng 47, trong in AI Tệp "C: \ Python27 \ lib \ site-packages \ numpy \ matrixlib \ defmatrix.py", dòng 859, trong getI trả về asmatrix (func (tự)) Tệp "C: \ Python27 \ lib \ site-packages \ numpy \ linalg \ linalg.py", dòng 1574, trong pinv u, s, vt = svd (a, 0) Tệp "C: \ Python27 \ lib \ site-packages \ numpy \ linalg \ linalg.py", dòng 1278, trong svd a = _fastCopyAndTranspose (t, a) Tệp "C: \ Python27 \ lib \ site-packages \ numpy \ linalg \ linalg.py ", dòng 145, trong _fastCopyAndTranspose cast_arrays = cast_arrays + (_fastCT (a.astype (type)) ValueError: thiết lập phần tử mảng với một chuỗi ence. – abcdxx

+6

@abcdxx Thôi nào, bạn không thể đánh bom tôi với một loạt các thông báo lỗi, đặc biệt là không có bối cảnh. _What_ cung cấp cho bạn lỗi này, bạn đã truyền thông số nào vào hàm nào? –

+0

Tôi hv danh sách 2D Tôi chuyển đổi nó thành mảng bằng cách sử dụng np.array và sau đó tính toán nghịch đảo từ ma trận bằng cách sử dụng AI trong đó A = np.asmatrix (mảng) nhưng nó đã đưa ra lỗi trên – abcdxx

1

Nếu bạn có danh sách danh sách (như bạn đã đề cập), trước tiên bạn cần phải chuyển đổi danh sách thành một mảng có nhiều mảng; thấy how to convert 2d list to 2d numpy array?

Một ví dụ ngắn được đưa ra ở đây:

import numpy as np 
a = [[ 0. +0.j, 1.j, 2. -2.j], 
    [ 4. -4.j, 5. -5.j, 6. -1.j], 
    [ 8. -8.j, 9. -9.j, 10.]] 
b = np.matrix(np.array(a)) 
b_inv = np.linalg.inv(b) 
Các vấn đề liên quan