Làm cách nào để bạn thêm một mảng vào bảng trong python?

Một Bảng có thể được tạo mà không cần bất kỳ dữ liệu đầu vào ban đầu nào hoặc thậm chí không có bất kỳ cột ban đầu nào. Điều này hữu ích để xây dựng các bảng động nếu không biết kích thước, cột hoặc dữ liệu ban đầu

Ghi chú

Mỗi lần thêm hàng yêu cầu tạo một bản sao mới của toàn bộ bảng, vì vậy trong trường hợp các bảng lớn, việc này có thể chậm. Mặt khác, việc thêm cột khá nhanh

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]

Danh sách các cột¶

Trường hợp điển hình là bạn có một số cột dữ liệu có cùng độ dài được xác định trong các biến khác nhau. Đây có thể là danh sách Python hoặc mảng numpy hoặc kết hợp cả hai. Chúng có thể được sử dụng để tạo Bảng bằng cách đặt các biến dữ liệu cột vào danh sách Python. Trong trường hợp này, tên cột không được xác định bởi dữ liệu đầu vào, vì vậy chúng phải được đặt bằng cách sử dụng từ khóa name hoặc chúng sẽ được tạo tự động dưới dạng . col.

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
  a      b       cint32 float64 string8----- ------- -------    1     2.0       x    4     5.0       y

Tạo một bảng mới bằng cách sử dụng các cột từ bảng đầu tiên

Sau khi bạn có Bảng thì bạn có thể tạo bảng mới bằng cách chọn các cột và đặt bảng này vào danh sách Python, e. g. [ t['c'], t['a'] . :

>>> Table[[t['c'], t['a']]]
c astring8 int32------- ----- x 1 y 4

Tạo một bảng mới bằng cách sử dụng các biểu thức liên quan đến các cột

Đối tượng Column được lấy từ tiêu chuẩn numpy . Điều này cho phép một cách nhỏ gọn để tạo một bảng mới với các giá trị cột đã sửa đổi.

>>> Table[[t['a']**2, t['b'] + 10]]
a bint32 float64----- ------- 1 12.0 16 15.0

Các loại dữ liệu cột khác nhau

Phương thức nhập danh sách cho Bảng rất linh hoạt vì bạn có thể sử dụng kết hợp nhiều loại dữ liệu khác nhau để khởi tạo bảng.

>>> a = [1, 4]
>>> b = np.array[[[2, 3], [5, 6]]]  # vector column
>>> c = Column[['x', 'y'], name='axis']
>>> arr = [a, b, c]
>>> Table[arr]  
col0 col1 [2] axisint64 int64 string8----- -------- ------- 1 2 . 3 x 4 5 . 6 y

Lưu ý rằng trong cột thứ ba, tên cột hiện có 'axis' được sử dụng.

Dict của các cột¶

Có thể sử dụng từ điển dữ liệu cột để khởi tạo Bảng .

>>> arr = {'a': np.array[[1, 4], dtype=np.int32],
..        'b': [2.0, 5.0],
..        'c': ['x', 'y']}
>>>
>>> Table[arr]  
a c bint32 string8 float64----- ------- ------- 1 x 2.0 4 y 5.0

Chỉ định thứ tự cột và tùy chọn các loại dữ liệu

>>> Table[arr, names=['a', 'b', 'c'], dtype=['f8', 'i4', 'S2']]
a b cfloat64 int32 string16------- ----- -------- 1.0 2 x 4.0 5 y

Các loại dữ liệu cột khác nhau

Dữ liệu cột đầu vào có thể là bất kỳ loại dữ liệu nào có thể khởi tạo đối tượng Column .

>>> arr = {'a': [1, 4],
..        'b': np.array[[[2, 3], [5, 6]]],
..        'c': Column[['x', 'y'], name='axis']}
>>> Table[arr, names=['a', 'b', 'c']]  
a b [2] cint64 int64 string8----- ------ ------- 1 2 . 3 x 4 5 . 6 y

Lưu ý rằng khóa 'c' được ưu tiên hơn tên cột hiện tại 'axis'< . Cũng thấy rằng cột in the third column. Also see that the 'b' là một cột vectơ trong đó mỗi phần tử hàng tự nó là một mảng 2 phần tử.

Đổi tên cột là không thể

________số 8

Dữ liệu hàng¶

Dữ liệu theo hàng có thể được sử dụng để tạo bảng bằng cách sử dụng đối số từ khóa hàng .

Danh sách các bản ghi dữ liệu dưới dạng list hoặc tuple

Nếu bạn có dữ liệu đầu vào theo hàng, chẳng hạn như danh sách bản ghi, bạn cần sử dụng từ khóa hàng để tạo bảng.

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
0

Đối tượng dữ liệu được truyền dưới dạng đối số hàng có thể là bất kỳ biểu mẫu nào mà np có thể phân tích cú pháp. rec. hàm fromrecords[] .

Danh sách các đối tượng dict

Bạn cũng có thể khởi tạo một bảng với các giá trị hàng. Điều này được xây dựng như một danh sách các đối tượng dict. Các phím xác định tên cột

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
1

Mỗi hàng phải có cùng một bộ khóa, nếu không sẽ xảy ra lỗi ValueError

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
2

hàng đơn

Bạn cũng có thể tạo một bảng mới từ một hàng của bảng hiện có

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
3

Hãy nhớ rằng Hàng thực tế có độ dài bằng 0 so với Bảngmới được tạo . Điều này tương tự như sự khác biệt giữa một mảng vô hướng mới được tạo . Điều này tương tự như sự khác biệt giữa một mảng vô hướng mới được tạo . Điều này tương tự như sự khác biệt giữa một mảng vô hướng mới được tạo . Điều này tương tự như sự khác biệt giữa một mảng vô hướng mới được tạo . Điều này tương tự như sự khác biệt giữa một mảng vô hướng mới được tạo . Điều này tương tự như sự khác biệt giữa một mảng vô hướng which has a length of one. This is similar to the difference between a scalar 1 [độ dài 0] và một mảng như np. mảng[[1]] với độ dài 1.

Ghi chú

Trong trường hợp dữ liệu đầu vào là một danh sách các ký tự hoặc một hàng trong Bảng, thì được phép cung cấp dữ liệu dưới dạng dữ liệu . Ví dụ Bảng[[{'a'. 1}, {'a'. 2}]] được chấp nhận. Tuy nhiên, danh sách các bản ghi phải luôn được cung cấp bằng cách sử dụng từ khóa hàng , nếu không danh sách này sẽ được hiểu là danh sách các cột.

Mảng cấu trúc NumPy¶

Mảng có cấu trúc là cơ chế tiêu chuẩn trong numpy để lưu trữ dữ liệu bảng không đồng nhất. Hầu hết các gói I/O khoa học đọc tệp bảng [e. g. PyFITS, v. table, asciitable] sẽ trả về bảng trong một đối tượng dựa trên mảng có cấu trúc. Một mảng có cấu trúc có thể được tạo bằng cách sử dụng.

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
4

Từ mảng thật đơn giản để tạo Bảng object:

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
5

Lưu ý rằng trong ví dụ trên và hầu hết các ví dụ sau, chúng tôi đang tạo một bảng và ngay lập tức yêu cầu trình thông dịch Python tương tác in bảng để xem những gì chúng tôi đã tạo. Trong mã thực, bạn có thể làm điều gì đó như

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
6

Tên cột mới

Có thể thay đổi tên cột so với giá trị ban đầu bằng cách cung cấp đối số tên .

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
7

Các kiểu dữ liệu mới

Tương tự như vậy, loại dữ liệu cho mỗi cột có thể được thay đổi bằng dtype .

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
8

Mảng đồng nhất NumPy¶

A numpy Mảng 1 chiều được coi là một bảng hàng đơn trong đó mỗi phần tử của mảng tương ứng với một cột.

>>> t = Table[]
>>> t['a'] = [1, 4]
>>> t['b'] = Column[[2.0, 5.0], unit='cm', description='Velocity']
>>> t['c'] = ['x', 'y']

>>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']]
>>> t.add_row[[1, 2.0, 'x']]
>>> t.add_row[[4, 5.0, 'y']]
9

A numpy Mảng 2 chiều [trong đó tất cả các phần tử có cùng loại] cũng có thể được chuyển đổi thành Table. In this case the column names are not specified by the data and must either be provided by the user or will be automatically generated as col trong đó < . is the column number.

Ví dụ cơ bản với tên cột tự động

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y0

Tên và loại cột được chỉ định

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y1

Tham khảo dữ liệu gốc

Có thể tham chiếu dữ liệu gốc cho một mảng đồng nhất miễn là các kiểu dữ liệu không bị thay đổi

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y2

Mảng Python so với mảng `numpy` làm đầu vào

Có một vấn đề hơi tế nhị mà bạn cần hiểu theo cách mà các đối tượng Bảng được tạo. Bất kỳ dữ liệu đầu vào nào trông giống như danh sách Python [bao gồm cả bộ dữ liệu] đều được coi là danh sách các cột. Ngược lại, đầu vào mảng numpy đồng nhất được hiểu là danh sách các hàng.

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y3

Sự phân đôi này là cần thiết để hỗ trợ đầu vào danh sách linh hoạt trong khi vẫn giữ được cách diễn giải tự nhiên của mảng 2-d numpy trong đó chỉ mục đầu tiên tương ứng với dữ liệu .

Cột bảng¶

Có thể tạo một bảng mới bằng cách chọn một tập hợp con các cột trong một bảng hiện có

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y4

Một cách khác để sử dụng thuộc tính columns [được giải thích trong phần TableColumns] để khởi tạo một bảng mới. Điều này cho phép bạn chọn các cột theo chỉ số hoặc tên của chúng và hỗ trợ cú pháp cắt.

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y5

Chi tiết khởi tạo¶

Đối tượng bảng được tạo bằng cách khởi tạo đối tượng lớp Bảng với các đối số sau, tất cả đều là tùy chọn.

dữ liệu. numpy ndarray, dict, list hoặc Table Dữ liệu để khởi tạo bảng. tên. danh sách Chỉ định tên cột dtype. danh sách Chỉ định loại dữ liệu cột meta. giống như dict Siêu dữ liệu được liên kết với bảng bản sao. boolean Sao chép dữ liệu đầu vào [mặc định=True].

Các tiểu mục sau đây cung cấp thêm chi tiết về các giá trị và tùy chọn cho từng đối số từ khóa có thể được sử dụng để tạo đối tượng Bảng mới.

dữ liệu¶

Đối tượng Bảng có thể được khởi tạo với một số dạng khác nhau cho dữ liệu argument.

ndarray numpy [mảng có cấu trúc] Tên cột cơ sở là tên trường của mảng cấu trúc dữ liệu . Danh sách tên [tùy chọn] có thể được sử dụng để chọn các trường cụ thể và/hoặc sắp xếp lại tên cơ sở. Danh sách dtype [tùy chọn] phải khớp với độ dài của tên và là . numpy ndarray [đồng nhất] data types.numpy ndarray [homogeneous]

Nếu dữ liệu ndarray là 1 chiều thì nó được coi là một bảng hàng đơn trong đó mỗi phần tử của mảng tương ứng với một cột.

Nếu dữ liệu ndarray ít nhất là 2 chiều thì chỉ mục đầu tiên [ngoài cùng bên trái] tương ứng với số hàng [độ dài bảng] . Kích thước cao hơn được hấp thụ trong hình dạng của mỗi ô bảng.

Nếu được cung cấp tên danh sách phải khớp với “chiều rộng” của dữ liệu argument. The default for tên là tự động tạo tên cột ở dạng “col dtype sẽ ghi đè các loại cột cơ sở và phải khớp với độ dài của tên.

dict-likeCác khóa của đối tượng data xác định tên cột cơ sở. Các giá trị tương ứng có thể là đối tượng Cột, mảng có nhiều mảng hoặc đối tượng dạng danh sách. Danh sách tên [tùy chọn] có thể được sử dụng để chọn các trường cụ thể và/hoặc sắp xếp lại tên cơ sở. Danh sách dtype [tùy chọn] phải khớp với độ dài của tên và là . list-likeMỗi mục trong danh sách dữ liệu cung cấp một cột gồm các giá trị dữ liệu và có thể là đối tượng Cột, mảng có nhiều mảng hoặc đối tượng dạng danh sách. Danh sách tên xác định tên của từng cột. Tên sẽ được tạo tự động nếu không được cung cấp [từ đối số tên hoặc theo đối tượng Cột]. Nếu được cung cấp, đối số tên phải khớp với số mục trong dữ liệu . Danh sách dtype tùy chọn sẽ ghi đè các loại dữ liệu mặc định hoặc hiện có và phải khớp với tên in length.list-of-dictsSimilar to Python’s builtin csv. DictReader , mỗi mục trong danh sách dữ liệu cung cấp một hàng giá trị dữ liệu và phải là một chính tả. Các giá trị chính trong mỗi lệnh xác định tên cột và mỗi hàng phải có tên cột giống hệt nhau. Đối số name có thể được cung cấp để chỉ định thứ tự cột. Nếu nó không được cung cấp, thứ tự cột sẽ mặc định theo thứ tự bảng chữ cái. Danh sách dtype có thể được chỉ định và phải tương ứng với thứ tự của các cột đầu ra. Nếu bất kỳ khóa nào của hàng không khớp với các hàng còn lại, thì ValueError sẽ được đưa ra. KhôngKhởi tạo bảng có độ dài bằng 0. Nếu tên và tùy chọn dtype được cung cấp thì các cột tương ứng sẽ được tạo.

tên¶

Các tên cung cấp một cách để chỉ định tên cột của bảng hoặc ghi đè lên các tên hiện có. Theo mặc định, tên cột được lấy từ tên hiện có [đối với ndarray hoặc Bảng input] or auto-generated as col. If tên được cung cấp thì đó phải là một danh sách có cùng độ dài với số lượng cột. Bất kỳ thành phần danh sách nào có giá trị Không có đều quay về tên mặc định.

Trong trường hợp dữ liệu được cung cấp dưới dạng tên cột, thì tên argument can be supplied to specify the order of columns. The tên phải chứa từng khóa trong lệnh dữ liệu . Nếu tên không được cung cấp thì thứ tự các cột trong bảng đầu ra sẽ không xác định.

dtype¶

Đối số dtype cung cấp một cách để chỉ định các kiểu dữ liệu cột của bảng hoặc ghi đè các kiểu hiện có. Theo mặc định, các loại được lấy từ các loại hiện có [đối với ndarray hoặc Bảng input] or auto-generated by the numpy.array[] thói quen. Nếu dtype được cung cấp thì đó phải là một danh sách có cùng độ dài với số lượng cột. Các giá trị phải hợp lệ numpy. bộ khởi tạo dtype hoặc Không có . Bất kỳ thành phần danh sách nào có giá trị Không có trở về loại mặc định.

Trong trường hợp dữ liệu được cung cấp dưới dạng chính tả của các cột, thì dtype argument must be accompanied by a corresponding names argument in order to uniquely specify the column ordering.

meta¶

Đối số meta chỉ đơn giản là một đối tượng chứa siêu dữ liệu được liên kết với bảng. Đối tượng này nên là một dict hoặc OrderedDict, nhưng yêu cầu chắc chắn duy nhất là nó có thể được sao chép bằng thư viện chuẩn copy. quy trình deepcopy[] . Theo mặc định meta là một OrderedDict trống.

sao chép¶

Theo mặc định, dữ liệu được sao chép vào một np nội bộ mới. đối tượng ndarray trong đối tượng Bảng. Trong trường hợp dữ liệunp. ndarray hoặc một Bảng hiện có, có thể sử dụng tham chiếu đến dữ liệu hiện có bằng cách đặt copy=False. This has the advantage of reducing memory use and being faster. However one should take care because any modifications to the new Table data will also be seen in the original input data. See the Copy versus Reference section for more information.

Sao chép so với Tham khảo¶

Thông thường khi một đối tượng Bảng mới được tạo, dữ liệu đầu vào sẽ được sao chép vào một đối tượng mảng bên trong mới. Điều này đảm bảo rằng nếu các phần tử bảng mới được sửa đổi thì dữ liệu gốc sẽ không bị ảnh hưởng. Tuy nhiên, khi tạo một bảng từ một đối tượng ndarray gọn gàng [có cấu trúc hoặc đồng nhất], có thể vô hiệu hóa việc sao chép để thay vào đó, một tham chiếu bộ nhớ đến dữ liệu gốc được sử dụng. Điều này có ưu điểm là nhanh hơn và sử dụng ít bộ nhớ hơn. Tuy nhiên, phải thận trọng vì dữ liệu bảng mới và dữ liệu gốc sẽ được liên kết với nhau, như minh họa bên dưới.

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y6

Lưu ý rằng khi tham chiếu dữ liệu, không thể thay đổi kiểu dữ liệu vì thao tác đó yêu cầu tạo một bản sao của dữ liệu. Trong trường hợp này xảy ra lỗi

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y7

Một lưu ý khác khi sử dụng dữ liệu được tham chiếu là nếu bạn thêm một hàng mới vào bảng thì tham chiếu đến mảng dữ liệu ban đầu sẽ bị mất và thay vào đó, bảng sẽ giữ một bản sao của các giá trị ban đầu [ngoài hàng mới]

Các lớp Column và TableColumns¶

Có hai lớp, CộtCột bảng , .

Cột¶

A Column có thể được tạo như sau, trong mọi trường hợp, cột tên . . . . . . . . . . . . should be provided as a keyword argument and one can optionally provide these values:

dữ liệu. danh sách, ndarray hoặc Không có Giá trị dữ liệu cột dtype. numpy. giá trị tương thích dtype Loại dữ liệu cho cột mô tả. str Mô tả đầy đủ của cột đơn vị. str Đơn vị vật lý định dạng. str hoặc hàm Chỉ định định dạng để xuất các giá trị cột meta. dict Siêu dữ liệu được liên kết với cột

Tùy chọn khởi tạo¶

Các giá trị dữ liệu cột, hình dạng và kiểu dữ liệu được chỉ định theo một trong hai cách

Cung cấp giá trị ``dữ liệu`` chứ không phải ``độ dài`` hoặc ``hình dạng``

ví dụ

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y8

Đối số dtype có thể là bất kỳ giá trị nào là trình khởi tạo kiểu dữ liệu có kích thước cố định được chấp nhận cho numpy. phương thức dtype[]. xem http. // tài liệu. scipy. org/doc/numpy/tham chiếu/mảng. dtypes. html. Những ví dụ bao gồm.

  • Loại không phải chuỗi của Python [float, int, bool]
  • Loại không có chuỗi [e. g. np. float32, np. int64, np. bool]
  • Nặng nề. chuỗi kiểu giao thức mảng dtype [e. g. 'i4', 'f8', 'S15']

Nếu không có giá trị dtype nào được cung cấp thì loại được suy ra bằng cách sử dụng np. mảng[dữ liệu] . Khi dữ liệu được cung cấp thì hình dạnglength arguments are ignored.

Cung cấp ``chiều dài`` và ``hình dạng`` tùy chọn, nhưng không cung cấp ``dữ liệu``

ví dụ

>>> a = np.array[[1, 4], dtype=np.int32]
>>> b = [2.0, 5.0]
>>> c = ['x', 'y']
>>> t = Table[[a, b, c], names=['a', 'b', 'c']]
>>> t
a b cint32 float64 string8----- ------- ------- 1 2.0 x 4 5.0 y9

Dtype dtype mặc định là np. float64 . Đối số shape là hình dạng mảng của một ô trong cột. hình dạng mặc định là [] có nghĩa là một giá trị duy nhất trong mỗi phần tử.

Ghi chú

Sau khi đặt loại cho một cột, loại đó không thể thay đổi. Nếu các giá trị dữ liệu thuộc loại khác được gán cho cột thì chúng sẽ được truyền sang loại cột hiện có

Trình xác định định dạng¶

Trình xác định định dạng kiểm soát đầu ra của các giá trị cột khi một bảng hoặc cột được in hoặc ghi vào bảng ASCII. Trong trường hợp đơn giản nhất, đó là một chuỗi có thể được chuyển đến hàm định dạng có sẵn của python. Đối với định dạng phức tạp hơn, người ta cũng có thể cung cấp các chuỗi định dạng "kiểu cũ" hoặc "kiểu mới" hoặc thậm chí là một hàm

Đặc tả định dạng đơn giản

Loại chuỗi này chỉ định trực tiếp cách định dạng giá trị, sử dụng ngôn ngữ nhỏ đặc tả định dạng khá giống với C

".4f" sẽ cung cấp bốn chữ số sau số thập phân ở định dạng float hoặc

"6d" sẽ cung cấp số nguyên trong trường 6 ký tự.

Chuỗi định dạng kiểu cũ

Điều này tương ứng với cú pháp như "%. 4f" % giá trị như được ghi lại trong Hoạt động định dạng chuỗi.

"%. 4f" để in bốn chữ số sau số thập phân ở định dạng float hoặc

"%6d" để in một số nguyên trong trường rộng 6 ký tự.

Chuỗi định dạng kiểu mới

Điều này tương ứng với cú pháp như "{. 4f}". format[value] như được ghi lại trong cú pháp chuỗi định dạng.

"{. 4f}" để in bốn chữ số sau số thập phân ở định dạng float hoặc

"{. 6d}" để in một số nguyên trong trường rộng 6 ký tự.

Lưu ý rằng trong cả hai trường hợp chuỗi định dạng, bất kỳ chuỗi Python nào định dạng chính xác một giá trị đều hợp lệ, vì vậy {. 4f} angstrom hoặc Giá trị. %12. 2f sẽ hoạt động.

Hàm số

Tính linh hoạt cao nhất có thể đạt được bằng cách thiết lập chức năng định dạng. Hàm này phải chấp nhận một đối số [giá trị] và trả về một chuỗi. Trong ví dụ sau, điều này được sử dụng để tạo đầu ra sẵn sàng cho LaTeX

>>> Table[[t['c'], t['a']]]
c astring8 int32------- ----- x 1 y 40

BảngCột¶

Mỗi đối tượng Bảng có một thuộc tính cột đó là . Về mặt kỹ thuật, thuộc tính Column objects in the table [see also the Column section]. Technically the columns là một đối tượng TableColumns , là một đối tượng được sắp xếp nâng cao . Có một vài điểm chính cần nhớ.

  • A Bảng có thể được khởi tạo từ đối tượng TableColumns .
  • Việc chọn nhiều cột từ một đối tượng TableColumns trả về một TableColumns object.
  • Chọn một cột từ đối tượng TableColumns trả về một Cột.

Vì vậy, bây giờ hãy xem cách chọn cột từ đối tượng TableColumns .

Chọn cột theo tên

>>> Table[[t['c'], t['a']]]
c astring8 int32------- ----- x 1 y 41

Chọn cột bằng cách cắt chỉ mục

>>> Table[[t['c'], t['a']]]
c astring8 int32------- ----- x 1 y 42

Chọn cột theo chỉ mục hoặc tên

>>> Table[[t['c'], t['a']]]
c astring8 int32------- ----- x 1 y 43

Bảng phân lớp¶

Đối với một số ứng dụng, có thể hữu ích khi phân lớp Bảng để giới thiệu hành vi chuyên biệt. Ngoài việc phân lớp Bảng , người ta thường mong muốn thay đổi hành vi của các đối tượng lớp bên trong được chứa hoặc tạo bởi Bảng. Điều này bao gồm hàng, cột, định dạng và vùng chứa cột. Để làm được điều này subclass cần khai báo class nào sẽ sử dụng [nếu khác với bản dựng sẵn]. Điều này được thực hiện bằng cách chỉ định một hoặc nhiều thuộc tính lớp Hàng , Cột, MaskedColumn, TableColumns, or TableFormatter.

Ví dụ tầm thường sau ghi đè tất cả những thứ này bằng các lớp con không làm gì cả, nhưng trong thực tế, bạn sẽ chỉ ghi đè lên các thành phần con cần thiết

Làm cách nào để chèn mảng trong Python?

Nếu bạn đang sử dụng Danh sách dưới dạng một mảng, bạn có thể sử dụng các hàm append[], insert[] và expand[] của nó. .
Nếu bạn đang sử dụng mô-đun mảng, bạn có thể sử dụng phép nối bằng toán tử +, các hàm append[], insert[] và expand[] để thêm các phần tử vào mảng

Làm cách nào để viết một mảng trong Python?

Mảng có thể được tạo bằng Python bằng cách nhập mô-đun mảng vào chương trình python. .
từ nhập mảng *
arrayName = array[typecode, [initializers]]

Làm cách nào để thêm bảng trong Python?

Tạo bảng bằng python .
Thiết lập kết nối với cơ sở dữ liệu bằng phương thức connect[]
Tạo một đối tượng con trỏ bằng cách gọi phương thức con trỏ [] trên đối tượng kết nối đã tạo ở trên
Bây giờ hãy thực thi câu lệnh CREATE TABLE bằng phương thức exec[] của lớp Cursor

Bạn có thể đặt một mảng trong hàm Python không?

Trong Python, bất kỳ loại dữ liệu nào cũng có thể được truyền dưới dạng đối số như chuỗi, danh sách, mảng, từ điển, v.v. cho một hàm .

Chủ Đề