Tôi muốn tạo danh sách các điểm tương ứng với lưới. Vì vậy, nếu tôi muốn tạo một mạng lưới của khu vực từ (0,0) đến (1,1), nó sẽ chứa các điểm (0,0), (0,1), (1,0), (1, 0).Điểm meshgrid một nửa
Tôi biết rằng điều này có thể được thực hiện với đoạn mã sau:
g = np.meshgrid([0,1],[0,1])
np.append(g[0].reshape(-1,1),g[1].reshape(-1,1),axis=1)
yielding kết quả:
array([[0, 0],
[1, 0],
[0, 1],
[1, 1]])
Câu hỏi của tôi là hai khía cạnh:
- Có một tốt hơn cách làm điều này?
- Có cách nào để khái quát hóa điều này với kích thước cao hơn không?
Tôi nhận được thông báo lỗi: 'Traceback (cuộc gọi gần đây nhất): Tệp" ", dòng 1, trong Tệp". \ Xxx.py ", dòng 816, trong meshgrid2 slc [i] = lens [ i] LoạiError: đối tượng 'map' không phải là subscriptable' file 'xxx.py' là nơi tôi đặt hàm của bạn vào. –
Bạn có thể sử dụng python3 nơi map trả về một iterator chứ không phải là một danh sách. Điều dễ nhất cần làm là bọc 'map' trong 'list':' lens = list (map (len, arrs)) '. –
Trên Numpy 1.8 không cần hàm 'meshgrid2', vì tiêu chuẩn' meshgrid' hỗ trợ các chiều cao hơn. – fhchl