Điều này cho thấy một hiệu suất khá cao [mặc dù chậm hơn so với khởi tạo kích thước chính xác] để điền vào một mảng có kích thước không xác định trong Numpy:
data = numpy.zeros[ [1, 1] ]
N = 0
while True:
row = ...
if not row: break
# assume every row has shape [K,]
K = row.shape[0]
if [N >= data.shape[0]]:
# over-expand: any ratio around 1.5-2 should produce good behavior
data.resize[ [N*2, K] ]
if [K >= data.shape[1]]:
# no need to over-expand: presumably less common
data.resize[ [N, K+1] ]
# add row to data
data[N, 0:K] = row
# slice to size of actual data
data = data[:N, :]
Thích nghi với trường hợp của bạn:
if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
Bạn cũng có thể muốn theo dõi các kích thước dữ liệu thực tế [số lượng tối đa, tối đa I] và cắt mảng sau.
Như một ví dụ về đề xuất đầu tiên, giả sử chúng tôi đang tạo một mảng sẽ luôn có 10 cột, nhưng chúng tôi không có cách nào để biết có bao nhiêu hàng. Chúng tôi sẽ sử dụng danh sách để lưu trữ từng hàng, sau đó chuyển đổi thành mảng 2D ở cuối:import numpy as np
data = []
random_val = 1
while random_val > 0.05:
data.append[np.arange[10]]
random_val = np.random.random[]
data = np.array[data]
print data.shape
Gợi ý: 2
Trong bài viết này, chúng tôi sẽ thảo luận về cách tạo một ma trận trống hoặc mảng 2D numpy trước tiên bằng numpy.empty [] và sau đó nối các hàng hoặc cột riêng lẻ vào ma trận này bằng Numpy.Append []. Mảng 2d numpy và nối các mục vào nó dưới dạng hàng hoặc cột ,, để thêm nhiều hàng vào một mảng 2D, kết hợp các hàng trong cùng một mảng numpy và sau đó nối nó, để thêm nhiều cột vào một mảng 2D, kết hợp các cột trong cùng một mảng numpy và sau đó nối nó,
numpy.empty[]
numpy.empty[shape, dtype = float, order = 'C']
numpy.append[]
numpy.append[arr, values, axis = None]
Hãy để tạo ra một mảng numpy trống với 4 cột hoặc 0 hàng,
# Create an empty Numpy array with 4 columns or 0 rows empty_array = np.empty[[0, 4], int] print['Empty 2D Numpy array:'] print[empty_array]
Gợi ý: 3
Có ba cách khác nhau để tạo ra các mảng numpy:, tạo và tạo ra một mảng numpy là bước đầu tiên để sử dụng Numpy để thực hiện các tính toán mảng số nhanh. Được trang bị các công cụ khác nhau để tạo mảng, giờ đây bạn đã được thiết lập để thực hiện các hoạt động mảng cơ bản., Ngoài việc sử dụng các hàm numpy, bạn cũng có thể tạo một mảng trực tiếp từ danh sách Python. Chuyển danh sách Python cho chức năng mảng để tạo một mảng numpy:, để tạo một mảng ba chiều, chỉ định 3 tham số cho chức năng định hình lại.
1 import Numpy as np 2 array = np.arange[20] 3 array
1 array[[0, 1, 2, 3, 4, 2 5, 6, 7, 8, 9, 3 10, 11, 12, 13, 14, 4 15, 16, 17, 18, 19 ]]
Gợi ý: 4
Một mảng thường là một thùng chứa có kích thước cố định của các vật phẩm cùng loại và kích thước. Số lượng kích thước và vật phẩm trong một mảng được xác định bởi hình dạng của nó. Hình dạng của một mảng là một bộ số của các số nguyên không âm, xác định kích thước của từng chiều., Trong Numpy, kích thước được gọi là trục. Điều này có nghĩa là nếu bạn có một mảng 2D trông như thế này:, một mảng có thể được lập chỉ mục bởi một số nguyên không âm, bởi Booleans, bởi một mảng khác hoặc bởi các số nguyên. Thứ hạng của mảng là số lượng kích thước. Hình dạng của mảng là một bộ số số nguyên cho kích thước của mảng dọc theo mỗi chiều. Ví dụ, nếu bạn có một mảng 2 chiều với 2 hàng và 3 cột, hình dạng của mảng của bạn là [2, 3].
>>> a = np.arange[6] >>> a2 = a[np.newaxis,: ] >>> a2.shape[1, 6]
>>> a = np.array[[1, 2, 3, 4, 5, 6]]
if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
0Gợi ý: 5
Bất cứ khi nào bạn nhìn thấy mảng mảng Điều này chấp nhận bất kỳ đối tượng giống như chuỗi nào [bao gồm các mảng khác] và tạo ra một mảng numpy mới chứa dữ liệu được truyền. Ví dụ, danh sách là một ứng cử viên tốt để chuyển đổi:, trong các mảng đa chiều, nếu bạn bỏ qua các chỉ số sau, đối tượng được trả về sẽ là một ndarray chiều thấp hơn bao gồm tất cả các dữ liệu dọc theo kích thước cao hơn. Vì vậy, trong mảng 2 × 2 × 3 ARR3D, lưu ý rằng trong tất cả các trường hợp này trong đó các phần phụ của mảng đã được chọn, các mảng được trả về là các chế độ xem.
if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
1if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
2if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
3if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
4if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
5if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
6Gợi ý: 6
Cập nhật lần cuối: 20 tháng 1 năm 2022
Đầu ra: & nbsp; & nbsp;
if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
715._
if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
8Gợi ý: 7
Tạo một chương trình để cập nhật giá trị hiện có của mảng 2D trong Python., Chúng ta hãy hiểu hàm Len [] để có được kích thước của một mảng 2 chiều trong Python.
if count > temp.shape[0]:
temp.resize[ [max[ temp.shape[0]*2, count+1 ], temp.shape[1]] ]
if i > temp.shape[1]:
temp.resize[ [temp.shape[0], max[temp.shape[1]*2, i+1]] ]
# now safe to use temp[count, i]
9