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.



Hàm List insert() trong Python chèn đối tượng obj vào trong list tại chỉ số index đã cho. Hàm này không trả về bất kỳ giá trị nào nhưng nó chèn phần tử đã cho tại chỉ mục đã xác định.

Nội dung chính

  • INSERT 1 bản ghi
  • INSERT nhiều bản ghi
  • Chèn một phần tử vào vị trí chỉ định trong list ban đầu | phương thức insert()
  • Chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu | cắt (slice) list
  • Thay thế và chèn nhiều phần tử vào phạm vi chỉ định trong list ban đầu | cắt (slice) list
  • Tổng kết


Cú pháp

Cú pháp của insert() trong Python:

Tham số:

  • index: Đây là chỉ mục nơi đối tượng obj được chèn.

  • obj: Là đối tượng cần chèn vào List đã cho.


Ví dụ sau minh họa cách sử dụng của insert() trong Python.

list1 = ['java', 'python', 'c++', 'php', 'sql']
list1.insert(3, 'android')
print ("List sau khi duoc chen them doi tuong 'android': ", list1)

Chạy chương trình Python trên sẽ cho kết quả:

List sau khi duoc chen them doi tuong 'android':  ['java', 'python', 'c++', 'android', 'php', 'sql']




Câu lệnh INSERT INTO được sử dụng để thêm một bản ghi vào bảng. Trong python, chúng ta có thể sử dụng (%s) thay cho các giá trị.

INSERT 1 bản ghi

Phương thức cursor.execute() được sử dụng để insert 1 bản ghi vào table.

Chúng ta cung cấp các giá trị thực tế trong một tuple trong phương thức cursor.execute().

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()
sql = ("insert into Employee(name, id, salary, dept_id, branch_name) "
    + "values (%s, %s, %s, %s, %s)")

#giá trị của một row được cung cấp dưới dạng tuple
val = ("The Mac", 10001, 25000.00, 101, "Hanoi")

try:
    #inserting the values into the table
    cur.execute(sql,val)

    #commit the transaction
    myconn.commit()

except:
    myconn.rollback()

print(cur.rowcount,"record inserted!")
myconn.close()

Kết quả:



INSERT nhiều bản ghi

Phương thức cursor.executemany() được sử dụng để insert 1 bản ghi vào table.

import mysql.connector

#tạo đối tượng connection
myconn = mysql.connector.connect(host = "localhost", user = "root",
    passwd = "1234567890", database = "PythonDB")

#tạo đối tượng cursor
cur = myconn.cursor()
sql = ("insert into Employee(name, id, salary, dept_id, branch_name) "
    "values (%s, %s, %s, %s, %s)")

#giá trị của một row được cung cấp dưới dạng tuple
val = [("Vinh", 10002, 26000.00, 101, "Hanoi"), 
       ("Trung", 10003, 26000.00, 102, "Danang")]

try:
    #inserting the values into the table
    cur.executemany(sql, val)

    #commit the transaction
    myconn.commit()

except:
    myconn.rollback()

print(cur.rowcount,"record inserted!")
myconn.close()

Kết quả:



Hướng dẫn tất cả các cách chèn phần tử vào list python. Bạn sẽ học được các cách chèn phần tử vào list python như chèn một phần tử vào vị trí chỉ định trong list ban đầu, chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu, cũng như cách chèn và thay thế nhiều phần tử vào phạm vi chỉ định trong list ban đầu, bằng cách sử dụng phương thức insert() và chức năng cắt (slice) list python sau bài học này.

Chúng ta có 3 phương pháp để chèn phần tử vào list python như sau:

  • Phương thức insert() : chèn một phần tử vào vị trí chỉ định trong list ban đầu.
  • Cắt (slice) list : Chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu
  • Cắt (slice) list : Thay thế và chèn nhiều phần tử vào phạm vi chỉ định trong list ban đầu

Lại nữa trong trường hợp bạn chỉ muốn thêm chèn phần tử vào cuối một list python, hãy sử dụng các phương thức khác như append() hay extend() trong bài viết thêm phần tử vào list và kết hợp các list với nhau trong python nhé.

Chèn một phần tử vào vị trí chỉ định trong list ban đầu | phương thức insert()

Phương thức insert() trong python được dùng để chèn một phần tử vào vị trí chỉ định trong list python. Chúng ta sử dụng phương thức insert() với cú pháp sau đây:

org_list.insert (index, giá trị)

Trong đó:

  • org_list là list ban đầu
  • index là vị trí cần chèn phần tử trong list ban đầu
  • giá trị là giá trị của phần tử cần chèn vào list. Giá trị này có thể là một chuỗi hoặc một số.

Phương thức insert() sẽ chèn giá trị vào vị trí trước phần tử có index được chỉ định trong list ban đầu.

  • Xem thêm: Index trong python và cách truy cập phần tử trong list Python.

Ví dụ cụ thể, chúng ta chèn một chuỗi ký tự vào list python như sau

mylist = ["A", "B", "C"]
mylist.insert(1, "Z")

print(mylist)

Bạn có thể thấy ký tự Z đã được chèn vào vị trí đứng trước ký tự B có index bằng 1.

Trong trường hợp chỉ định giá trị chèn vào là một chuỗi string, thì bản thân chuỗi string đó sẽ được coi như là một phần tử mới và được chèn vào list ban đầu như sau:

mylist = ["Blue", "Red", "Green"]


mylist.insert(2, "White")
print(mylist)



mylist.insert(0, "Black")
print(mylist)

Nếu bạn muốn lấy từng ký tự trong chuỗi chỉ định và chèn vào list ban đầu, hãy xem ở phần dưới nhé.

Tương tự với chuỗi, bạn cũng có thể chèn một số vào list python bằng cách sử dụng phương thức insert() như sau:

mynum = [1, 2, 3, 4, 5]
mynum.insert(3, 6)

print(mynum)



mylist = ["A", "B", "C"]
mylist.insert(1, 3)

print(mylist)

Lưu ý là với phương thức insert() chúng ta chỉ có thể chèn một phần tử vào list python mà thôi.

Chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu | cắt (slice) list

Bằng cách ứng dụng chức năng cắt (slice) list, chúng ta có thể chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu thông qua một list, một tuple hoặc một chuỗi.

Ý tưởng ở đây là chúng ta sẽ lưu giữ tất cả các phần tử cần chèn vào trong một tuple, chuỗi, hoặc list, sau đó sử dụng cắt (slice) list để cắt một phạm vi trống ở list ban đầu, rồi chèn vào đó các phần tử trong tuple, chuỗi, hoặc list chỉ định.

Cú pháp chúng ta sử dụng sẽ là:

org_list [index : index ] = tuple,string,list

Trong đó org_list là list ban đầu, index là vị trí cần chèn, và tuple,string, hoặc list dùng để chỉ định các phần tử cần thêm vào list ban đầu.

  • Xem thêm : Cắt (slice) list trong python

Ví dụ cụ thể, chúng ta chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu thông qua list như sau:

mynum = list(range(3))
print(mynum)


mynum[1:1] = [4, 5, 6]
print(mynum)

Một ví dụ khác khi chúng ta sử dụng tuple để chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu.

mylist = ["A", "B", "C"]
mylist[2:2] = ('E', 'F')

print(mylist)

Lưu ý là khi chúng ta sử dụng chuỗi string để chèn nhiều phần tử vào vị trí chỉ định trong list ban đầu bằng cắt (slice) list, không phải là cả chuỗi đó được thêm vào như một phần tử mới, mà là từng ký tự trong chuỗi được lấy ra và thêm vào list. Ví dụ:

mylist = ["A", "B", "C"]
mylist[2:2] = 'EFG'

print(mylist)

Bằng cách ứng dụng cắt (slice) list, chúng ta cũng có thể chèn phần tử vào vị trí cuối cùng trong list python như sau:

mylist = ["1", "2", "3"]
length = len(mylist)

mylist[length:length] = ["4", "5"]
print(mylist)

Thay thế và chèn nhiều phần tử vào phạm vi chỉ định trong list ban đầu | cắt (slice) list

Một cách sử dụng khác của cắt (slice) list, chúng ta có thể vừa chèn vừa thay thế nhiều phần tử vào phạm vi chỉ định trong list ban đầu thông qua một list, tuple hoặc chuỗi string.

Ý tưởng ở đây là chúng ta sẽ cắt toàn bộ các phần tử trong một phạm vi ở list ban đầu, rồi chèn vào đó các phần tử mới đã được chứa trong tuple,string,list chỉ định.

Cú pháp chúng ta sử dụng sẽ là:

org_list [start_index : end_index ] = tuple,string,list

Trong đó org_list là list ban đầu, start_index và end_index là phạm vi cắt ra và chèn mới phần tử vào trong list ban đầu. Còn tuple,string,list là để chứa các phần tử mới cần chèn vào.

Ví dụ, chúng ta thay thế và chèn mới toàn bộ phần tử trong phạm vi index [1:3] trong list ban đầu như sau:

mynum = list(range(5))
print(mynum)


mynum[1:3] = [7, 8, 9]
print(mynum)

Chúng ta cũng có thể sử dụng với tuple hoặc chuỗi như sau:

mynum = list(range(5))
print(mynum)


mynum[1:3] = (7, 8, 9)
print(mynum)


mynum[1:2] = "ABC"
print(mynum)

  • Xem thêm : Cắt (slice) list trong python

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách cách chèn phần tử vào list python bằng phương thức insert hoặc chức năng cắt (slice) list python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

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>> >>

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

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.