data - MultiSet

multiset(닀쀑집합)은 λ™μΌν•œ μš”μ†Œκ°€ μ—¬λŸ¬ 번 λ‚˜νƒ€λ‚  수 μžˆλŠ” μ§‘ν•©μ˜ μΌλ°˜ν™”λœ κ°œλ…μž…λ‹ˆλ‹€. 각 μš”μ†Œκ°€ ν•œ 번만 λ‚˜νƒ€λ‚  수 μžˆλŠ” 일반 μ§‘ν•©κ³ΌλŠ” 달리, multiset은 각 μš”μ†Œκ°€ μ‘΄μž¬ν•˜λŠ” 횟수λ₯Ό μΆ”μ ν•©λ‹ˆλ‹€.

🧐 닀쀑집합(multiset)의 μ£Όμš” κ°œλ…

  • Elements: multiset에 μΆ”κ°€ν•  수 μžˆλŠ” ν•­λͺ©μž…λ‹ˆλ‹€.

  • Multiplicity: multiset에 각 μš”μ†Œκ°€ ν‘œμ‹œλ˜λŠ” νšŸμˆ˜μž…λ‹ˆλ‹€

🧡 νŒŒμ΄μ¬μ—μ„œμ˜ multiset κ΅¬ν˜„

νŒŒμ΄μ¬μ—λŠ” set λΌλŠ” μžλ£Œν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€. set은 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•Šκ³ , set 객체λ₯Ό μ§‘ν•©μœΌλ‘œ μΈμ‹ν•˜μ—¬, 집합에 κ΄€λ ¨λœ 연산을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, ꡐ집합, ν•©μ§‘ν•© λ“±μ˜ 연산을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ multiset은 쀑볡을 포함할 수 있기 λ•Œλ¬Έμ— set μžλ£Œν˜•μœΌλ‘œλŠ” multiset을 κ΅¬ν˜„ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€μ‹ μ—, ν‚€κ°€ μš”μ†Œμ΄κ³  값이 각각의 개수인 dictionary μžλ£Œν˜•μ„ μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•  수 있으며, μ΄λŸ¬ν•œ 연산을 νŽΈν•˜κ²Œ 해쀄 수 μžˆλŠ” collections λͺ¨λ“ˆμ˜ Counter 클래슀λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“š CounterλŠ” dictionary의 μ„œλΈŒν΄λž˜μŠ€μž…λ‹ˆλ‹€.

Counter 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ muliset κ΅¬ν˜„ 및 계산

multiset κ΅¬ν˜„

from collections import Counter


# Creating a multiset
multiset = Counter()

# Adding elements to the multiset
multiset.update([1, 2, 2, 3, 3, 3, 3])
print("multiset:", multiset) # Counter({3: 4, 2: 2, 1: 1})

# Adding more elements
multiset.update([2, 2, 4])
print("multiset:", multiset)  # Counter({2: 4, 3: 4, 1: 1, 4: 1})

# Accessing the count of a specific element
print("Count of element 3:", multiset[3]) # 4

# # Removing elements
multiset.subtract([2, 2])
print("Multiset after removal:", multiset) # Counter({3: 4, 2: 2, 1: 1, 4: 1})

# Converting to a list (elements repeated according to their counts)
multiset_as_list = list(multiset.elements())
print("Multiset as a list:", multiset_as_list) # [1, 2, 2, 3, 3, 3, 3, 4]

# Checking if an element is in the multiset
print("Is 4 in the multiset?", 4 in multiset) # True
print("Is 5 in the multiset?", 4 in multiset) # False

# Removing an element completely
del multiset[4]
print("Multiset after deleting element 4:", multiset) # Counter({3: 4, 2: 2, 1: 1})

multiset에 λŒ€ν•œ μ§‘ν•© μ—°μ‚°

from collections import Counter


multiset1 = Counter([1, 2, 2, 3, 3, 3])
multiset2 = Counter([2, 3, 3, 4, 4, 4, 4])
print("multiset1:", multiset1) # Counter({3: 3, 2: 2, 1: 1})
print("multiset2:", multiset2) # Counter({4: 4, 3: 2, 2: 1})

# Convert to list to see the elements with their counts
print("multiset1 as a list:", list(multiset1.elements())) # [1, 2, 2, 3, 3, 3]
print("multiset2 as a list:", list(multiset2.elements())) # [2, 3, 3, 4, 4, 4, 4]

# Calculate intersection
intersect_multiset = multiset1 & multiset2
print("Intersection:", intersect_multiset) # Counter({3: 2, 2: 1})

# Calculate union
union_multiset = multiset1 | multiset2
print("union:", union_multiset) # Counter({4: 4, 3: 3, 2: 2, 1: 1})

# Calculate difference
difference_multiset = multiset1 - multiset2
print("difference:", difference_multiset)  # Counter({1: 1, 2: 1, 3: 1})

multiset(also known as bags)λŠ” μ™œ, 어디에 μ‚¬μš©λ˜λŠ”κ°€

μš”μ†Œμ˜ λΉˆλ„κ°€ μ€‘μš”ν•œ λ‹€μ–‘ν•œ μ‚¬λ‚˜λ¦¬μ˜€μ—μ„œ μœ μš©ν•©λ‹ˆλ‹€. κ³ μœ ν•œ μš”μ†Œλ§Œ μ €μž₯ν•˜λŠ” μ§‘ν•©κ³Ό 달리 닀쀑 집합은 동일 μš”μ†Œκ°€ μ—¬λŸ¬ 번 λ°œμƒν•  수 있고, κ·Έ 수λ₯Ό 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, μš”μ†Œμ˜ λ°œμƒ 횟수λ₯Ό μΆ”μ ν•˜λŠ” μ‹œλ‚˜λ¦¬μ˜€μ— μœ μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ ν…μŠ€νŠΈ λΆ„μ„μ—μ„œ 단어 λΉˆλ„ 수, μ°½κ³ μ—μ„œμ˜ 재고 수 λ˜λŠ” 이벀트 λ°œμƒ 횟수 좔적 등이 μžˆμŠ΅λ‹ˆλ‹€.

Text Processing

  • 단어 λΉˆλ„ 수: λ¬Έμ„œμ—μ„œ λ‹¨μ–΄μ˜ λΉˆλ„λ₯Ό κ³„μ‚°ν•˜μ—¬ ν…μŠ€νŠΈλ₯Ό λΆ„μ„ν•˜κ±°λ‚˜ μŠ€νŒΈμ„ κ°μ§€ν•˜κ±°λ‚˜ 검색 μ—”μ§„μš© λ¬Έμ„œ 색인을 μƒμ„±ν•©λ‹ˆλ‹€.

  • μ• λ„ˆκ·Έλž¨(Anagram) 탐지: 두 λ¬Έμžμ—΄μ˜ 문자 수λ₯Ό λΉ„κ΅ν•˜μ—¬ 두 λ¬Έμžμ—΄μ΄ μ•„λ‚˜κ·Έλž¨μΈμ§€ ν™•μΈνž™λ‹ˆλ‹€.

πŸ“š Anagram

  • μ–΄λ– ν•œ λ‹¨μ–΄μ˜ 문자λ₯Ό μž¬λ°°μ—΄ν•˜μ—¬ λ‹€λ₯Έ λœ»μ„ κ°€μ§€λŠ” λ‹€λ₯Έ λ‹¨μ–΄λ‘œ λ°”κΎΈλŠ” 것을 λ§ν•œλ‹€.

Data Analysis

  • 톡계 뢄석: νžˆμŠ€ν† κ·Έλž¨μ΄λ‚˜ λΉˆλ„ 뢄포와 같은 톡계 뢄석을 μœ„ν•΄ 데이터 포인트의 λ°œμƒμ„ μΆ”μ ν•©λ‹ˆλ‹€.

  • μ„€λ¬Έ 쑰사 뢄석: λ™μΌν•œ μ§ˆλ¬Έμ— λŒ€ν•΄ μ—¬λŸ¬ 개의 응닡이 κ°€λŠ₯ν•œ 섀문쑰사 λ˜λŠ” μ„€λ¬Έμ§€μ—μ„œ 응닡을 κ³„μ‚°ν•©λ‹ˆλ‹€.

Inventory Management

  • 재고 계산: 각 ν’ˆλͺ©μ˜ μˆ˜λŸ‰μ„ ν¬ν•¨ν•˜μ—¬ μƒμ μ˜ 재고 ν’ˆλͺ©μ„ μΆ”μ ν•©λ‹ˆλ‹€

  • λ¦¬μ†ŒμŠ€ 관리: μ‚¬μš© κ°€λŠ₯ν•œ λ¦¬μ†ŒμŠ€μ˜ μˆ˜κ°€ μ€‘μš”ν•œ κ²Œμž„ 개발과 같은 μ•±μ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.

Event Counting

  • λ‘œκΉ… 및 λͺ¨λ‹ˆν„°λ§: λͺ¨λ‹ˆν„°λ§ 및 κ²½κ³  λͺ©μ μœΌλ‘œ μ‹œμŠ€ν…œ λ‘œκ·Έμ—μ„œ 이벀트 λ°œμƒ 횟수λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.

  • μ‚¬μš©μž ν™œλ™ 좔적: μ‚¬μš©μž 행동을 μ΄ν•΄ν•˜κ±°λ‚˜ 뢄석 λͺ©μ μœΌλ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©μž μž‘μ—… λ˜λŠ” 이벀트λ₯Ό μΆ”μ ν•©λ‹ˆλ‹€.

Last updated