Mảng thời gian Python
NumPy là thư viện Python cơ bản để tính toán số. Loại quan trọng nhất của nó là một loại mảng có tên là 8. NumPy cung cấp rất nhiều thói quen tạo mảng cho các trường hợp khác nhau. 9 là một trong những chức năng như vậy dựa trên phạm vi số. Nó thường được gọi là 0 vì 1 là từ viết tắt được sử dụng rộng rãi của NumPy Show
Tạo mảng NumPy rất quan trọng khi bạn đang làm việc với các thư viện Python khác dựa trên chúng, như SciPy, Pandas, Matplotlib, scikit-learning, v.v. NumPy phù hợp để tạo và làm việc với mảng vì nó cung cấp các thói quen hữu ích, cho phép tăng hiệu suất và cho phép bạn viết mã ngắn gọn Đến cuối bài viết này, bạn sẽ biết
Hãy xem 0 đang hoạt độngTiền thưởng miễn phí. hướng dẫn bạn các hướng dẫn, video và sách tốt nhất để cải thiện kỹ năng NumPy của bạn Giá trị trả về và tham số của >>> np.arange(1, 10, 3) array([1, 4, 7]) 0NumPy 9 là một trong những thói quen tạo mảng dựa trên phạm vi số. Nó tạo một thể hiện của 8 với các giá trị cách đều nhau và trả về tham chiếu tới nóBạn có thể xác định khoảng của các giá trị chứa trong một mảng, khoảng cách giữa chúng và loại của chúng với bốn tham số là 9
Ba tham số đầu tiên xác định phạm vi của các giá trị, trong khi tham số thứ tư chỉ định loại phần tử
4 không thể bằng không. Nếu không, bạn sẽ nhận được một 9. Bạn không thể chuyển đi bất cứ đâu từ 2 nếu mức tăng hoặc giảm là 1Nếu 6 bị bỏ qua, 9 sẽ cố gắng suy ra kiểu của các phần tử mảng từ kiểu của 2, 3 và 4Bạn có thể tìm thêm thông tin về các tham số và giá trị trả về của 9 trong tài liệu chính thứcLoại bỏ các quảng cáoPhạm vi Đối số của >>> np.arange(1, 10, 3) array([1, 4, 7]) 0Các đối số của NumPy 9 xác định các giá trị chứa trong mảng tương ứng với các tham số số 2, 3 và 4. Bạn phải vượt qua ít nhất một trong số họCác ví dụ sau đây sẽ cho bạn thấy cách hoạt động của 9 tùy thuộc vào số lượng đối số và giá trị của chúngCung cấp tất cả các đối số phạm viKhi làm việc với các thói quen NumPy, trước tiên bạn phải nhập NumPy >>>
Bây giờ, bạn đã nhập NumPy và bạn đã sẵn sàng áp dụng 9Hãy xem một ví dụ đầu tiên về cách sử dụng NumPy 9>>>
Trong ví dụ này, 2 là 5. Do đó, phần tử đầu tiên của mảng thu được là 5. 4 là ________45 _____ 0, đó là lý do tại sao giá trị thứ hai của bạn là 1+3, tức là 1, trong khi giá trị thứ ba trong mảng là 4+3, bằng với ________ 45 _______2Theo mẫu này, giá trị tiếp theo sẽ là 3 (7+3), nhưng việc đếm phải kết thúc trước khi đạt được 3, vì vậy giá trị này không được bao gồmBạn cũng có thể chuyển 2, 3 và 4 làm đối số vị trí>>>
Mẫu mã này tương đương, nhưng ngắn gọn hơn mẫu trước Giá trị của 3 không được bao gồm trong một mảng. Đó là lý do tại sao bạn có thể nhận được kết quả giống hệt nhau với các giá trị 3 khác nhau>>>
Mẫu mã này trả về mảng có cùng giá trị như hai phần trước. Bạn có thể nhận được kết quả tương tự với bất kỳ giá trị nào của 3 lớn hơn hoàn toàn ________ 45 _______2 và nhỏ hơn hoặc bằng ________ 45 _______3Tuy nhiên, nếu bạn làm cho 3 lớn hơn 3, thì việc đếm sẽ kết thúc sau khi đạt được 3>>>
Trong trường hợp này, bạn nhận được mảng có bốn phần tử bao gồm 3Lưu ý rằng ví dụ này tạo ra một mảng các số dấu phẩy động, không giống như ví dụ trước. Đó là bởi vì bạn chưa định nghĩa được 6, và 9 đã suy ra nó cho bạn. Bạn sẽ tìm hiểu thêm về điều này sau trong bài viếtBạn có thể xem biểu diễn đồ họa của ba ví dụ này trong hình bên dưới 2 được hiển thị bằng màu xanh lá cây, 3 màu đỏ, trong khi 4 và các giá trị chứa trong mảng có màu xanh dươngNhư bạn có thể thấy từ hình trên, hai ví dụ đầu tiên có ba giá trị ( 5, 1 và 2) được tính. Họ không cho phép đưa vào 3. Trong ví dụ thứ ba, 3 lớn hơn 3 và nó được chứa trong mảng kết quảLoại bỏ các quảng cáoCung cấp hai đối số phạm viBạn có thể bỏ qua 4. Trong trường hợp này, 9 sử dụng giá trị mặc định của nó là 5. Hai mệnh đề sau là tương đương
Tuyên bố thứ hai ngắn hơn. 4, mặc định là 5, là điều thường được mong đợi bằng trực giácSử dụng 9 với số gia 5 là một trường hợp rất phổ biến trong thực tế. Một lần nữa, bạn có thể viết ví dụ trước ngắn gọn hơn với các đối số vị trí 2 và 3>>>
Đây là một cách trực quan và ngắn gọn để gọi 9. Sử dụng các đối số từ khóa trong ví dụ này không thực sự cải thiện khả năng đọcGhi chú. Nếu bạn cung cấp hai đối số vị trí, thì đối số đầu tiên là 2 và đối số thứ hai là 3Cung cấp đối số một phạm viBạn phải cung cấp ít nhất một đối số cho 9. Nói chính xác hơn, bạn phải cung cấp 2Nhưng điều gì sẽ xảy ra nếu bạn bỏ qua 3? . Một lần nữa, giá trị mặc định của 4 là 5Nói cách khác, 9 giả định rằng bạn đã cung cấp 3 (thay vì 2) và rằng 2 là 1 và 4 là 5Hãy xem một ví dụ mà bạn muốn bắt đầu một mảng với 1, tăng các giá trị lên 5 và dừng trước 3>>>
Các mẫu mã này được. Chúng hoạt động như thể hiện trong các ví dụ trước. Có một cách thậm chí còn ngắn hơn và rõ ràng hơn nhưng vẫn trực quan để làm điều tương tự. Bạn chỉ có thể cung cấp một đối số vị trí duy nhất >>>
Đây là cách thông thường nhất để tạo một mảng NumPy bắt đầu từ 0 và có số gia là một Ghi chú. Đối số duy nhất xác định nơi dừng đếm. Mảng đầu ra bắt đầu từ 1 và có số gia là 5Nếu bạn cố gắng cung cấp rõ ràng 3 mà không có 2, thì bạn sẽ nhận được một 32>>> 0Bạn mắc lỗi vì 9 không cho phép bạn tránh đối số đầu tiên tương ứng với 2 một cách rõ ràng. Nếu bạn cung cấp một đối số duy nhất, thì nó phải là 2, nhưng 9 sẽ sử dụng nó để xác định vị trí dừng đếmLoại bỏ các quảng cáoCung cấp đối số phủ địnhNếu bạn cung cấp các giá trị âm cho 2 hoặc cả 2 và 3, đồng thời có một giá trị dương là 4, thì 9 sẽ hoạt động giống như với tất cả các đối số khẳng định>>> 1Hành vi này hoàn toàn phù hợp với các ví dụ trước. Quá trình đếm bắt đầu với giá trị của 2, tăng dần theo số lượng của 4 và kết thúc trước khi đạt được giá trị 3đếm ngượcĐôi khi bạn sẽ muốn một mảng với các giá trị giảm dần từ trái sang phải. Trong những trường hợp như vậy, bạn có thể sử dụng 9 với giá trị âm cho 4 và với giá trị 2 lớn hơn 3>>> 2Trong ví dụ này, hãy chú ý mẫu sau. mảng thu được bắt đầu với giá trị của đối số thứ nhất và giảm dần cho 4 theo giá trị của đối số thứ haiTrong câu lệnh cuối cùng, 2 là 2 và mảng kết quả bắt đầu bằng giá trị này. 4 là 53 nên giá trị thứ hai là 7+(−3), tức là 1. Giá trị thứ ba là 4+(−3) hoặc 5. Việc đếm dừng lại ở đây vì đạt được giá trị tiếp theo là 3 ( 1) trước giá trị tiếp theo ( 58)Bạn có thể xem các biểu diễn đồ họa của ví dụ này trong hình bên dưới Một lần nữa, 2 được hiển thị bằng màu xanh lá cây, 3 màu đỏ, trong khi 4 và các giá trị chứa trong mảng có màu xanh dươngLần này, các mũi tên chỉ hướng từ phải sang trái. Đó là bởi vì 2 lớn hơn 3, 4 là số âm và về cơ bản bạn đang đếm ngượcVí dụ trước tạo ra kết quả tương tự như sau >>> 3Tuy nhiên, biến thể có giá trị âm của 4 thanh lịch và ngắn gọn hơnLấy mảng trốngCó một số trường hợp cạnh mà bạn có thể lấy các mảng NumPy trống với 9. Đây là các trường hợp thông thường của 67 không có bất kỳ phần tử nàoNếu bạn cung cấp các giá trị bằng nhau cho 2 và 3, thì bạn sẽ nhận được một mảng trống>>> 4Điều này là do quá trình đếm kết thúc trước khi đạt đến giá trị của 3. Vì giá trị của 2 bằng với 3, nên nó không thể đạt được và cũng không được đưa vào mảng kết quảMột trong những trường hợp bất thường là khi 2 lớn hơn 3 và 4 dương hoặc khi 2 nhỏ hơn 3 và 4 âm>>> 5Như bạn có thể thấy, các ví dụ này dẫn đến các mảng trống, không có lỗi Loại bỏ các quảng cáoKiểu dữ liệu của >>> np.arange(1, 10, 3) array([1, 4, 7]) 0Các loại phần tử trong mảng NumPy là một khía cạnh quan trọng của việc sử dụng chúng. Khi làm việc với 9, bạn có thể chỉ định loại phần tử với tham số 6Ghi chú. Dưới đây là một vài điểm quan trọng về các loại phần tử có trong mảng NumPy
Nếu bạn muốn tìm hiểu thêm về các kiểu của mảng NumPy, vui lòng đọc tài liệu chính thức Bạn có thể bỏ qua 6. Trong trường hợp này, 9 sẽ cố gắng suy ra dtype của mảng kết quả. Nó phụ thuộc vào các loại 2, 3 và 4, như bạn có thể thấy trong ví dụ sau>>> 6Ở đây, có một đối số (______37_______87) xác định phạm vi giá trị. Loại của nó là 88. Đó là lý do tại sao dtype của mảng 89 sẽ là một trong những kiểu số nguyên do NumPy cung cấp. Trong trường hợp này, NumPy chọn dtype 90 theo mặc định. Đây là loại số nguyên 64 bit (8 byte)Mảng trong ví dụ trước tương đương với mảng này >>> 7Đối số 91 không đề cập đến Python 88. Nó dịch sang NumPy 90 hoặc đơn giản là 94NumPy cung cấp cho bạn một số kiểu dữ liệu có kích thước cố định khác nhau về bộ nhớ và giới hạn
Nếu bạn muốn các kiểu số nguyên khác cho các phần tử của mảng, thì chỉ cần chỉ định 6>>> 8Bây giờ mảng kết quả có cùng giá trị như trong trường hợp trước, nhưng kiểu và kích thước của các phần tử khác nhau. Đối số 20 (hoặc 21) buộc kích thước của mỗi phần tử của 89 là 32 bit (4 byte)Khi đối số của bạn là một số thập phân thay vì số nguyên, dtype sẽ là một số loại dấu phẩy động NumPy, trong trường hợp này là 23>>> ______37_______9 Các giá trị của các phần tử giống nhau trong bốn ví dụ trước, nhưng các kiểu khác nhau Nói chung, khi bạn cung cấp ít nhất một đối số dấu phẩy động cho 9, mảng kết quả sẽ có các phần tử dấu phẩy động, ngay cả khi các đối số khác là số nguyên>>> 0Trong các ví dụ trên, 2 là một số nguyên, nhưng dtype là 26 vì 3 hoặc 4 là các số dấu phẩy độngNếu bạn chỉ định 6, thì 9 sẽ cố gắng tạo một mảng với các phần tử của kiểu dữ liệu được cung cấp>>> 1Đối số 31 ở đây chuyển thành NumPy 23, nghĩa là 33. Nó không đề cập đến Python 34. Bí danh có kích thước cố định cho 23 là 26 và 37Khi bạn cần một dtype dấu chấm động với độ chính xác và kích thước thấp hơn (tính bằng byte), bạn có thể chỉ định rõ ràng rằng >>> 2Sử dụng 38 (hoặc 39) làm cho mỗi phần tử của mảng 40 lớn 32 bit (4 byte). Kích thước của mỗi phần tử của 41 là 64 bit (8 byte)>>> 3Sự khác biệt giữa các yếu tố của 41 và 40, và nói chung là giữa 26 và 45, là bộ nhớ được sử dụng và độ chính xác. cái đầu tiên lớn hơn và chính xác hơn cái sauTrong nhiều trường hợp, bạn sẽ không nhận thấy sự khác biệt này. Tuy nhiên, đôi khi điều quan trọng. Ví dụ: TensorFlow sử dụng 46 và 47. Tương tự, khi bạn đang làm việc với hình ảnh, thậm chí các loại nhỏ hơn như 48 cũng được sử dụngKhi 4 không phải là số nguyên, kết quả có thể không nhất quán do hạn chế của số học dấu phẩy độngLoại bỏ các quảng cáoVượt ra ngoài phạm vi đơn giản với >>> np.arange(1, 10, 3) array([1, 4, 7]) 0Bạn có thể kết hợp thuận tiện 9 với các toán tử (như 52, 53, 54, 55, 56, v.v.) và các quy trình NumPy khác (chẳng hạn như 57 hoặc 58) để tạo phạm vi giá trị đầu ra>>> 4Điều này đặc biệt phù hợp khi bạn muốn tạo một cốt truyện trong Matplotlib Nếu bạn cần một mảng nhiều chiều, thì bạn có thể kết hợp 9 với hoặc các hàm và phương thức tương tự>>> 5Đó là cách bạn có thể lấy thể hiện 8 với các phần tử 62 và định hình lại nó thành một mảng hai chiềuSo sánh >>> np.arange(1, 10, 3) array([1, 4, 7]) 5 và >>> np.arange(1, 10, 3) array([1, 4, 7]) 0Python có một lớp tích hợp sẵn 5, tương tự như NumPy 9 ở một mức độ nào đó. 5 và 0 có sự khác biệt quan trọng liên quan đến ứng dụng và hiệu suất. Bạn sẽ thấy sự khác biệt và tương đồng của chúngSự khác biệt chính giữa hai loại này là 5 là một lớp Python tích hợp, trong khi 9 là một hàm thuộc thư viện của bên thứ ba (NumPy)Ngoài ra, mục đích của họ là khác nhau. Nói chung, 5 phù hợp hơn khi bạn cần lặp lại bằng vòng lặp Python 72. Nếu bạn muốn tạo một mảng NumPy và áp dụng các vòng lặp nhanh, thì 9 là một giải pháp tốt hơn nhiềuThông số và đầu raCả 5 và 9 đều có cùng tham số xác định phạm vi của các số thu được
Bạn áp dụng các tham số này tương tự, ngay cả trong trường hợp khi 2 và 3 bằng nhauTuy nhiên, khi làm việc với 5
5 và 9 cũng khác nhau về kiểu trả lại
Tạo trình tựBạn có thể áp dụng 5 để tạo một thể hiện của 87 hoặc 88 với các số cách đều nhau trong một phạm vi được xác định trước. Bạn có thể tìm thấy sự hiểu biết đặc biệt phù hợp cho mục đích nàyTuy nhiên, việc tạo và thao tác với mảng NumPy thường nhanh hơn và đơn giản hơn so với làm việc với danh sách hoặc bộ dữ liệu Hãy so sánh hiệu suất của việc tạo một 87 bằng cách sử dụng khả năng hiểu với một NumPy tương đương 8 với 9>>> 6Lặp lại mã này cho các giá trị khác nhau của 97 mang lại kết quả sau trên máy của tôiKích cỡ. 97Thời gian mỗi vòng lặp. 5Thời gian mỗi vòng lặp. 9Ratio1497 ns1. 14 µs0. 41102. 24 µs1. 28 µs1. 7410020. 0 µs1. 37 µs14. 61,000211 µs2. 92 µs72. 3Các kết quả này có thể khác nhau, nhưng rõ ràng bạn có thể tạo một mảng NumPy nhanh hơn nhiều so với một danh sách, ngoại trừ các chuỗi có độ dài rất nhỏ. (Ứng dụng thường mang lại lợi ích hiệu suất bổ sung. ) Điều này là do NumPy thực hiện nhiều thao tác, bao gồm cả vòng lặp, ở cấp độ C. Ngoài ra, NumPy được tối ưu hóa để làm việc với các vectơ và tránh một số chi phí liên quan đến Python Loại bỏ các quảng cáoPython >>> np.arange(start=1, stop=10, step=3) array([1, 4, 7]) 72 Vòng lặpNếu bạn cần các giá trị để lặp lại trong vòng lặp 72 của Python, thì 5 thường là giải pháp tốt hơn. Theo tài liệu Python chính thức
5 thường nhanh hơn 9 khi được sử dụng trong các vòng lặp 72 của Python, đặc biệt là khi có khả năng sớm thoát ra khỏi vòng lặp. Điều này là do 5 tạo ra các số theo kiểu lười biếng, khi chúng được yêu cầu, mỗi lần một sốNgược lại, 9 tạo ra tất cả các số ở đầuĐể biết thêm thông tin về 5, bạn có thể xem Hàm Python range() (Hướng dẫn) vàCác thói quen khác dựa trên dãy sốNgoài 9, bạn có thể áp dụng các quy trình tạo mảng NumPy khác dựa trên các dãy số
Tất cả các chức năng này đều có chi tiết cụ thể và trường hợp sử dụng. Bạn có thể chọn một trong những phù hợp theo nhu cầu của bạn Như bạn đã thấy, NumPy chứa nhiều quy trình hơn để tạo các phiên bản của 8Tóm tắt nhanhĐể sử dụng NumPy 9, trước tiên bạn cần nhập 28>>>
Đây là một bảng với một vài ví dụ tóm tắt cách sử dụng NumPy 9. Nó có thể hữu ích để ghi nhớ các cách sử dụng khác nhauExampleResult 30 31 32 31 34 35 36 35 38 39 40 41 42 43 44 45 46 47 48 49Đừng quên rằng bạn cũng có thể tác động đến bộ nhớ được sử dụng cho các mảng của mình bằng cách chỉ định các kiểu dữ liệu NumPy với tham số 6Phần kết luậnBây giờ bạn đã biết cách sử dụng NumPy 9. Hàm 0 là một trong những thủ tục cơ bản của NumPy thường được sử dụng để tạo các phiên bản của NumPy 8. Nó có bốn đối số
Bạn cũng đã học cách NumPy 9 so sánh với lớp dựng sẵn Python 5 khi bạn đang tạo chuỗi và tạo giá trị để lặp lạiBạn đã thấy rằng có các quy trình tạo mảng NumPy khác dựa trên các phạm vi số, chẳng hạn như 18, 20, 23, v.v.Nếu bạn có câu hỏi hoặc ý kiến, xin vui lòng đặt chúng trong phần bình luận bên dưới Đánh dấu là đã hoàn thành Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Sử dụng np của NumPy. arange() một cách hiệu quả 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Mirko Stojiljković Mirko có bằng tiến sĩ. D. trong Kỹ thuật cơ khí và làm việc như một giáo sư đại học. Anh là một Pythonista, người áp dụng các phương pháp tối ưu hóa kết hợp và máy học để hỗ trợ ra quyết định trong lĩnh vực năng lượng » Thông tin thêm về MirkoMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Brad Joanna Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Chuyên gia Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi timedelta64 trong Python là gì?Số học Datetime và Timedelta
. Kiểu dữ liệu timedelta64 cũng chấp nhận chuỗi “NAT” thay cho số cho giá trị “Không phải là thời gian”. Ví dụ. >>> np. a number, to represent the number of units, and a date/time unit, such as (D)ay, (M)onth, (Y)ear, (h)ours, (m)inutes, or (s)econds. The timedelta64 data type also accepts the string “NAT” in place of the number for a “Not A Time” value. Example. >>> np ...
Có kiểu dữ liệu thời gian trong Python không?Trong Python, ngày và giờ không phải là kiểu dữ liệu của riêng chúng , nhưng có thể nhập một mô-đun có tên datetime để hoạt động với . Mô-đun Datetime của Python được tích hợp sẵn trong Python, do đó không cần cài đặt nó bên ngoài. Mô-đun Datetime trong Python cung cấp các lớp để làm việc với ngày và giờ.
Phạm vi của datetime64 là gì?Kích thước đánh dấu (độ chính xác). 10 giây chính xác. Phạm vi hợp lệ. [ 0. 9 ] . Thông thường được sử dụng - 3 (mili giây), 6 (micro giây), 9 (nano giây).
Làm cách nào để nhân mảng trong Python?Hàm multiply() được sử dụng khi chúng ta muốn tính phép nhân của hai mảng. Nó trả về tích của mảng1 và mảng2, theo từng phần tử. |