Hướng dẫn dùng np.insert python

Tôi có mảng numpy sau đây

import numpy as np

X = np.array[[[5.], [4.], [3.], [2.], [1.]]]

Tôi muốn chèn [6.] ngay từ đầu . Tôi đã thử:

X = X.insert[X, 0]

làm thế nào để tôi chèn vào X?

numpy có chức năng insert có thể truy cập thông qua np.insert với tài liệu .

Bạn sẽ muốn sử dụng nó trong trường hợp này như vậy:

X = np.insert[X, 0, 6., axis=0]

đối số đầu tiên X chỉ định đối tượng được chèn vào.

Đối số thứ hai 0 chỉ định nơi.

Đối số thứ ba 6. chỉ định những gì sẽ được chèn.

Đối số thứ tư axis=0 chỉ định rằng việc chèn sẽ xảy ra tại vị trí 0 cho mỗi cột. Chúng tôi có thể đã chọn các hàng nhưng X của bạn là một vectơ cột, vì vậy tôi cho rằng chúng tôi sẽ ổn định.

Bạn có thể thử như sau

X = np.append[arr = np.array[[[6]]], values = X, axis= 0]

Thay vì chèn 6 vào X hiện có, hãy nối 6 bằng X.

Vì vậy, đối số thứ nhất arr là mảng numpy của vô hướng 6, đối số thứ hai là mảng của bạn sẽ được thêm và thứ ba là nơi chúng tôi muốn thêm

Tôi biết đây là một cái khá cũ, nhưng một giải pháp ngắn là sử dụng các thủ thuật cắt lát gọn gàng:

np.r_[[[6.]], X]

Nếu bạn cần làm điều đó trong một chiều thứ hai, bạn có thể sử dụng np.c_.

Tôi nghĩ rằng đây là phiên bản ít lộn xộn nhất mà tôi có thể nghĩ đến

Tôi vừa viết một số mã thực hiện thao tác này ~ 100.000 lần, vì vậy tôi cần tìm ra cách nhanh nhất để làm điều này. Tôi không phải là một chuyên gia về hiệu quả mã bằng bất kỳ phương tiện nào, nhưng tôi có thể tìm ra một số điều bằng cách sử dụng hàm ma thuật %%timeit trong một máy tính xách tay jupyter.

Phát hiện của tôi:

np.concatenate[[[number],array]] Yêu cầu ít thời gian nhất. Hãy gọi nó là 1 lần.

np.asarray[[number] + list[array]] Xuất hiện ở mức ~ 2x.

np.r_[number,array]is ~ 4x.

np.insert[array,0,number] Dường như là lựa chọn tồi tệ nhất ở đây tại 8x.

Tôi không biết làm thế nào điều này thay đổi với kích thước của array [tôi đã sử dụng một mảng hình [15,]] và hầu hết các tùy chọn tôi đề xuất chỉ hoạt động nếu bạn muốn đặt số ở đầu. Tuy nhiên, vì đó là những gì câu hỏi đang hỏi, tôi cho rằng đây là một nơi tốt để thực hiện những so sánh này.

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>10. list trong python

Bài sau
Zen of Python
Bài tiếp
Sắp xếp phần tử trong list python
  • Bài viết mới nhất
  • Làm tròn số trong JavaScript [Math.round, Math.ceil, Math.floor] tháng 7 1, 2022
  • Số mũ trong JavaScript [Math.pow, Math.exp] tháng 7 1, 2022
  • Math.max và Math.min trong JavaScript tháng 7 1, 2022
  • Math.random trong JavaScript tháng 7 1, 2022
  • throw trong JavaScript và cách trả về ngoại lệ tuỳ ý tháng 7 1, 2022
  • Các ngoại lệ trong JavaScript và cách xử lý tương ứng tháng 7 1, 2022
  • try...catch trong JavaScript và cách xử lý ngoại lệ tháng 7 1, 2022
  • Xử lý ngoại lệ của hàm xử lý mô tả trong khối try tháng 7 1, 2022
Profile

Tác giả : Kiyoshi [Chis Thanh]

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.

Chủ Đề