Cung cấp một hình dạng mới cho một mảng mà không thay đổi dữ liệu của nó.
Tham số aarray_likeaarray_likeMảng để được định hình lại.
newshapeint hoặc tuple của intsint or tuple of intsHình dạng mới nên tương thích với hình dạng ban đầu. Nếu một số nguyên, thì kết quả sẽ là một mảng 1 chiều có độ dài đó. Một kích thước hình dạng có thể là -1. Trong trường hợp này, giá trị được suy ra từ độ dài của mảng và kích thước còn lại.
Đặt hàng{‘C’, ‘F’, ‘A’}, optionalĐọc các phần tử của một thứ tự chỉ mục này và đặt các phần tử vào mảng được định hình lại bằng thứ tự chỉ mục này. ‘C, có nghĩa là đọc / viết các phần tử bằng thứ tự chỉ mục giống C, với chỉ mục trục cuối cùng thay đổi nhanh nhất, trở lại chỉ mục trục đầu tiên thay đổi chậm nhất. ‘F có nghĩa là đọc / viết các yếu tố bằng cách sử dụng thứ tự chỉ mục giống như Fortran, với chỉ mục đầu tiên thay đổi nhanh nhất và chỉ mục cuối cùng thay đổi chậm nhất. Lưu ý rằng các tùy chọn ‘C, và‘ F không có tài khoản về bố cục bộ nhớ của mảng cơ bản và chỉ đề cập đến thứ tự lập chỉ mục. Một người có nghĩa là đọc / viết các yếu tố theo thứ tự chỉ số giống như Fortran nếu A là Fortran tiếp giáp với bộ nhớ, thứ tự giống như C khác.
Đây sẽ là một đối tượng quan điểm mới nếu có thể; Nếu không, nó sẽ là một bản sao. Lưu ý không có gì đảm bảo bố cục bộ nhớ [C- hoặc Fortran- liền kề] của mảng được trả về.
Ghi chú
Không phải lúc nào cũng có thể thay đổi hình dạng của một mảng mà không sao chép dữ liệu. Nếu bạn muốn một lỗi được nêu ra khi dữ liệu được sao chép, bạn nên gán hình dạng mới cho thuộc tính hình dạng của mảng:
>>> a = np.zeros[[10, 2]] # A transpose makes the array non-contiguous >>> b = a.T # Taking a view makes it possible to modify the shape without modifying # the initial object. >>> c = b.view[] >>> c.shape = [20] Traceback [most recent call last]: ... AttributeError: Incompatible shape for in-place modification. Use `.reshape[]` to make a copy with the desired shape.
Từ khóa thứ tự cung cấp cho chỉ mục đặt hàng cả để tìm nạp các giá trị từ A, sau đó đặt các giá trị vào mảng đầu ra. Ví dụ, hãy để nói rằng bạn có một mảng:
>>> a = np.arange[6].reshape[[3, 2]] >>> a array[[[0, 1], [2, 3], [4, 5]]]
Bạn có thể nghĩ rằng định hình lại là lần đầu tiên ravels mảng [sử dụng thứ tự chỉ mục đã cho], sau đó chèn các phần tử từ mảng Ravel vào mảng mới bằng cách sử dụng cùng một loại thứ tự chỉ mục như được sử dụng cho sự raveling.
>>> np.reshape[a, [2, 3]] # C-like index ordering array[[[0, 1, 2], [3, 4, 5]]] >>> np.reshape[np.ravel[a], [2, 3]] # equivalent to C ravel then C reshape array[[[0, 1, 2], [3, 4, 5]]] >>> np.reshape[a, [2, 3], order='F'] # Fortran-like index ordering array[[[0, 4, 3], [2, 1, 5]]] >>> np.reshape[np.ravel[a, order='F'], [2, 3], order='F'] array[[[0, 4, 3], [2, 1, 5]]]
Ví dụ
>>> a = np.array[[[1,2,3], [4,5,6]]] >>> np.reshape[a, 6] array[[1, 2, 3, 4, 5, 6]] >>> np.reshape[a, 6, order='F'] array[[1, 4, 2, 5, 3, 6]]
>>> np.reshape[a, [3,-1]] # the unspecified value is inferred to be 2 array[[[1, 2], [3, 4], [5, 6]]]