cari
Rumahpembangunan bahagian belakangTutorial PythonBagaimana untuk menjana tarikh rawak k antara dua tarikh menggunakan Python?

Bagaimana untuk menjana tarikh rawak k antara dua tarikh menggunakan Python?

Menjana data rawak adalah sangat penting dalam bidang sains data. Daripada membina ramalan rangkaian saraf, data pasaran saham, dsb., tarikh biasanya digunakan sebagai salah satu parameter. Kita mungkin perlu menjana nombor rawak antara dua tarikh untuk analisis statistik. Artikel ini akan menunjukkan cara menjana k tarikh rawak antara dua tarikh yang diberikan

Gunakan modul rawak dan tarikh masa

Datetime ialah perpustakaan terbina dalam Python untuk masa pemprosesan. Sebaliknya, modul rawak membantu dalam menjana nombor rawak. Jadi kita boleh menggabungkan modul rawak dan masa tarikh untuk menjana tarikh rawak antara dua tarikh.

Tatabahasa

random.randint(start, end, k)

Rawak di sini merujuk kepada perpustakaan rawak Python. Kaedah randint mengambil tiga parameter penting bermula, tamat dan k (bilangan elemen). Mula dan tamat tentukan julat nombor yang kita perlukan untuk menjana nombor rawak. k mentakrifkan bilangan nombor yang perlu kita hasilkan

Contoh

Dalam contoh di bawah, kami mencipta fungsi yang dipanggil generate_random_dates yang mengambil sebagai parameter tarikh mula, tarikh tamat dan bilangan tarikh rawak untuk dijana. Untuk k nombor rawak, gunakan modul rawak. Kami menambah nombor ini pada tarikh mula, tetapi dalam julat tarikh tamat.

import random
from datetime import timedelta, datetime
def generate_random_dates(start_date, end_date, k):
    random_dates = []
    date_range = end_date - start_date
    for _ in range(k):
        random_days = random.randint(0, date_range.days)
        random_date = start_date + timedelta(days=random_days)
        random_dates.append(random_date)
    return random_dates
start_date = datetime(2023, 5, 25)
end_date = datetime(2023, 5, 31)
random_dates = generate_random_dates(start_date, end_date, 5)
print("The random dates generated are:")
for index, date in enumerate(random_dates):
    print(f"{index+1}. {date.strftime('%Y-%m-%d')}")

Output

The random dates generated are:
1. 2023-05-27
2. 2023-05-26
3. 2023-05-27
4. 2023-05-25
5. 2023-05-29

Menggunakan kaedah datetime dan hash

Fungsi cincang dalam Python menjana rentetan aksara panjang tetap yang dipanggil nilai cincang. Kita boleh menggunakan fungsi cincang untuk memperkenalkan rawak. Fungsi hash menjana nilai yang kelihatan rawak berdasarkan inputnya. Dengan menggunakan operasi modulo pada date_range, nilai cincang yang terhasil dihadkan kepada julat nilai yang mungkin dalam julat tarikh yang dikehendaki.

Tatabahasa

hash(str(<some value>)) % <range of dates>

Bergantung pada beberapa seni bina asas, fungsi cincang boleh mengambil rentetan dan mengembalikan nilai cincang. % ialah pengendali modulo yang digunakan untuk mengira baki nilai. Ini memastikan bahawa keputusan sentiasa sekurang-kurangnya dalam julat yang dikehendaki.

Contoh

Dalam kod di bawah, kami mengulang k kali. Kami menggunakan fungsi cincang untuk menjana nilai cincang rentetan. Seterusnya, kami menyekat julat tarikh untuk memastikan data berada dalam tarikh mula dan tamat tertentu. Kami menambahkan tarikh rawak yang dijana pada senarai yang dipanggil random_dates

from datetime import timedelta, datetime

def generate_random_dates(start_date, end_date, k):
   random_dates = []
   date_range = (end_date - start_date).days + 1

   for _ in range(k):
      random_days = hash(str(_)) % date_range
      random_date = start_date + timedelta(days=random_days)
      random_dates.append(random_date)

   return random_dates

# Example usage
start_date = datetime(2023, 5, 25)
end_date = datetime(2023, 5, 31)
random_dates = generate_random_dates(start_date, end_date, 5)

print("The random dates generated are:")
for index, date in enumerate(random_dates):
   print(f"{index+1}. {date.strftime('%Y-%m-%d')}")

Output

The random dates generated are:
1. 2023-05-28
2. 2023-05-28
3. 2023-05-25
4. 2023-05-27
5. 2023-05-28

Menggunakan perpustakaan NumPy dan Pandas

Numpy dan Pandas ialah perpustakaan Python yang popular untuk pengiraan matematik dan analisis data. Pustaka NumPy mempunyai kaedah rawak yang boleh kita gunakan untuk menjana nombor rawak. Sebaliknya, kita boleh menggunakan pustaka Pandas untuk menjana julat tarikh.

Tatabahasa

numpy.random.randint(start, end , size=<size of the output array> ,
dtype=<data type of the elements>, other parameters.....)

Nombor Rawak ialah modul perpustakaan NumPy. Kaedah randint mengambil permulaan dan tamat sebagai parameter yang diperlukan. Ia mentakrifkan julat nombor yang kita perlukan untuk mencari nombor rawak. saiz mentakrifkan saiz tatasusunan output, dan dtype mewakili jenis data elemen.

Contoh

Dalam kod di bawah, kami telah mencipta fungsi yang dipanggil generate_random_dates yang mengambil tarikh mula, tarikh tamat dan bilangan hari sebagai parameter dan mengembalikan satu siri tarikh rawak dalam bentuk senarai. Kami menggunakan perpustakaan Pandas untuk memulakan tarikh dan perpustakaan Numpy untuk menjana nombor.

import numpy as np
import pandas as pd
def generate_random_dates(start_date, end_date, k):
   date_range = (end_date - start_date).days + 1
   random_days = np.random.randint(date_range, size=k)
   random_dates = pd.to_datetime(start_date) + pd.to_timedelta(random_days, unit='d')
   return random_dates
start_date = datetime(2021, 5, 25)
end_date = datetime(2021, 5, 31)
print("The random dates generated are:")
random_dates = generate_random_dates(start_date, end_date, 5)
for index,date in enumerate(random_dates):
   print(f"{index+1}. {date.strftime('%Y-%m-%d')}")

Output

The random dates generated are:
1. 2021-05-26
2. 2021-05-27
3. 2021-05-27
4. 2021-05-25
5. 2021-05-27

Gunakan perpustakaan rawak dan anak panah

Arrow ialah perpustakaan Python. Ini menyediakan cara yang lebih baik dan lebih optimum untuk mengendalikan tarikh dan masa. Kita boleh menggunakan kaedah dapatkan anak panah untuk mendapatkan masa dalam format tarikh dan menggunakan perpustakaan rawak untuk mendapatkan nombor k secara rawak antara tarikh mula dan tarikh tamat.

Tatabahasa

arrow.get(date_string, format=<format of the date string> , tzinfo=<time
zone information>)

Anak panah mewakili modul anak panah Python. date_string mewakili rentetan tarikh dan masa yang perlu kita huraikan. Walau bagaimanapun, ia hendaklah dalam format yang diiktiraf oleh modul anak panah. format mentakrifkan format date_string. tzinfo menyediakan maklumat zon waktu.

Contoh

Kami telah menggunakan kaedah anak panah dalam kod di bawah untuk menjana tarikh rawak. Kami mentakrifkan fungsi tersuai yang dipanggil generate_random_dates. Kami mengulangi k kali dalam fungsi. Kami menggunakan kaedah bersatu untuk setiap lelaran untuk menjana tarikh rawak. Kami mengalihkan tarikh kepada tarikh rawak supaya tarikh rawak berada dalam julat tersebut. Kami menambahkan tarikh pada senarai random_dates dan mengembalikan nilainya.

import random
import arrow

def generate_random_dates(start_date, end_date, k):
   random_dates = []
   date_range = (end_date - start_date).days

   for _ in range(k):
      random_days = random.uniform(0, date_range)
      random_date = start_date.shift(days=random_days)
      random_dates.append(random_date)

   return random_dates
start_date = arrow.get('2023-01-01')
end_date = arrow.get('2023-12-31')
random_dates = generate_random_dates(start_date, end_date, 7)
print("The random dates generated are:")
for index,date in enumerate(random_dates):
    print(f"{index+1}. {date.strftime('%Y-%m-%d')}")

Output

The random dates generated are:
1. 2023-02-05
2. 2023-10-17
3. 2023-10-08
4. 2023-04-18
5. 2023-04-02
6. 2023-08-22
7. 2023-01-01

Kesimpulan

Dalam artikel ini, kami membincangkan cara menjana tarikh rawak antara dua tarikh yang diberikan menggunakan perpustakaan Python yang berbeza. Menjana tarikh rawak tanpa menggunakan mana-mana perpustakaan terbina dalam adalah tugas yang membosankan. Oleh itu, adalah disyorkan untuk menggunakan perpustakaan dan kaedah untuk melaksanakan tugas ini. Kita boleh menjana tarikh rawak menggunakan datetime, Numpy panda, dsb. Kod ini bukan kaedah dll.

Atas ialah kandungan terperinci Bagaimana untuk menjana tarikh rawak k antara dua tarikh menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:tutorialspoint. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Python vs C: Lengkung pembelajaran dan kemudahan penggunaanPython vs C: Lengkung pembelajaran dan kemudahan penggunaanApr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python vs C: Pengurusan dan Kawalan MemoriPython vs C: Pengurusan dan Kawalan MemoriApr 19, 2025 am 12:17 AM

Python dan C mempunyai perbezaan yang signifikan dalam pengurusan dan kawalan memori. 1. Python menggunakan pengurusan memori automatik, berdasarkan pengiraan rujukan dan pengumpulan sampah, memudahkan kerja pengaturcara. 2.C memerlukan pengurusan memori manual, memberikan lebih banyak kawalan tetapi meningkatkan risiko kerumitan dan kesilapan. Bahasa mana yang harus dipilih harus berdasarkan keperluan projek dan timbunan teknologi pasukan.

Python untuk pengkomputeran saintifik: rupa terperinciPython untuk pengkomputeran saintifik: rupa terperinciApr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

Python dan C: Mencari alat yang betulPython dan C: Mencari alat yang betulApr 19, 2025 am 12:04 AM

Sama ada untuk memilih Python atau C bergantung kepada keperluan projek: 1) Python sesuai untuk pembangunan pesat, sains data, dan skrip kerana sintaks ringkas dan perpustakaan yang kaya; 2) C sesuai untuk senario yang memerlukan prestasi tinggi dan kawalan asas, seperti pengaturcaraan sistem dan pembangunan permainan, kerana kompilasi dan pengurusan memori manualnya.

Python untuk sains data dan pembelajaran mesinPython untuk sains data dan pembelajaran mesinApr 19, 2025 am 12:02 AM

Python digunakan secara meluas dalam sains data dan pembelajaran mesin, terutamanya bergantung pada kesederhanaannya dan ekosistem perpustakaan yang kuat. 1) PANDAS digunakan untuk pemprosesan dan analisis data, 2) Numpy menyediakan pengiraan berangka yang cekap, dan 3) SCIKIT-Learn digunakan untuk pembinaan dan pengoptimuman model pembelajaran mesin, perpustakaan ini menjadikan Python alat yang ideal untuk sains data dan pembelajaran mesin.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python untuk Pembangunan Web: Aplikasi UtamaPython untuk Pembangunan Web: Aplikasi UtamaApr 18, 2025 am 12:20 AM

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak

Python vs C: Meneroka Prestasi dan KecekapanPython vs C: Meneroka Prestasi dan KecekapanApr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini