_2011-08-10 trac μ¬μ©μ tlatorreμ μλ³Έ ν°μΌ http://projects.scipy.org/numpy/ticket/1931 , unknownμ ν λΉ λ¨ ._
>>> np.uint64(5) << 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ufunc 'left_shift' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule 'safe'
>>> np.uint64(5) >> 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ufunc 'right_shift' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule 'safe'
_ @ charris λ μ΄ 2011-08-13μ μμ±νμ΅λλ€
μ΄λ μννΈ λ²νΈκ° λΆνΈμλ μ νμΌλ‘ λ³νλκ³ uint64λ₯Ό 보μ ν λ§νΌ ν° λΆνΈμλ μ μ μ νμ΄ μκΈ° λλ¬Έμ λλ€. μννΈ μ°μ°μλ νΉμν κ²½μ°κ° νμν©λλ€. νλμ¨μ΄κ° λΆνμν λΉνΈλ₯Ό κ°λ¦¬κΈ° λλ¬Έμ Intelμμλ μ€ν¨ ν μ μμ΅λλ€. μ¦, int32μ κ²½μ° νμ 5 λΉνΈ λ§ νμΈλ©λλ€.
_trac μ¬μ©μ parejkoj λμ΄ 2012-07-27_μ μμ±νμ΅λλ€.
λ€μ λλ€λ‘μ΄ λ¬Έμ λ₯Ό μ½λ© ν μμμμ΅λλ€.
lshift = lambda x,s: np.uint64(x)*np.uint64(2**s)
μ΄κ²μ μλνμ§λ§ μ΄μμ μ΄μ§ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό numpyμμ μμ νλ©΄ λ§€μ° μ μ©ν©λλ€.
5 λ ν ...μ΄κ² μ€μν λ¬Έμ μλλκΉ? λΆνΈμλ μ μλ μννΈμ λν΄ λͺ¨νΈνμ§ μμμΌν©λλ€.
λ μ¬μ΄ ν΄κ²° λ°©λ²μ μννΈμ λΆνΈμλ μ μλ₯Ό μ¬μ©νλ κ²μ λλ€.
np.uint64(5) << np.uint64(1)
@charrisκ° μμμ μΈκΈνλ―μ΄ λ¬Έμ λ dtypeμ΄ κ· μΌνκ² λ§λ€μ΄μ§λ λ°©μμ μμ΅λλ€. μΌλ°μ μΌλ‘ μμ νλ κ²μ 그리 μ¬μ΄ μΌμ΄ μλμ§λ§ (# 5668 μ°Έμ‘°) μννΈ μ°μ°μλ νΉμν κ²½μ°κ°μμ μ μμ΅λλ€. (PR νμν©λλ€, λ§νλ―μ΄ μ΄κ²μ μ¬μν κ²μ μλμ§λ§ ufucsμ λ΄λΆ 루νκ° μ΄λ»κ² κ²°μ λλμ§μ λν 곡μ ν μ΄ν΄κ° νμν©λλ€ ...).
λ μ¬μ΄ ν΄κ²° λ°©λ²μ μννΈμ λΆνΈμλ μ μλ₯Ό μ¬μ©νλ κ²μ λλ€.
np.uint64 (5) << np.uint64 (1)
... μλ§μ μ μλ‘ μλνκ³ μλ€λ κ²μ μκ³ μμ§λ§ μΌλ° μ½λλ₯Ό μ¬μ©νλ κ²½μ° (νΉν λ€λ₯Έ λͺ¨λμμ μ΄λ―Έ μμ±λμμΌλ©° μ μ΄ ν μμλ κ²) λ€μκ³Ό κ°μ΄ μλν©λλ€.
def f(x):
return x | (x >> 1)
κ·Έλ¬λ©΄ μΌλ° Python μ μμ np.uint64 μ ν λͺ¨λμμ μλνλλ‘ λ§λ€ μ μμ΅λλ€.
λλ μ΄κ²μ΄ μ¬μν κ²μ΄λΌκ³ λ§νλ €λ κ²μ μλμ§λ§ (λ΄ μ€ν¬ μ λ³΄λ€ μμ wayyyy) μ°μ μμκ° λμμΌνλ€κ³ μκ°ν©λλ€.
@ jason-s-λ¬Έμ κ° λ§€μ° μ±κ°μλ€λ λ° λμν©λλ€ ... μ¬νκ²λ ufuncκ° λ΄λΆμ μΌλ‘ μλνλ λ°©μμ λν΄ μΆ©λΆν μ ν΅ν μ¬λμ λ§μ§ μμ΅λλ€ ...
μλ§λ μΌλ°μ μΈ ufunc κΈ°κ³μ μμ‘΄νλ λμ λ°©λ²μ μ΄λμ μν΄ μ μ΄λ νΉλ³ν κ²½μ° μ€μΉΌλΌλ₯Ό μ¬μ©ν μ μμ΅λλ€. @charris : μ΄κ²μ΄ λΉμ μ΄ μΌλμ λ κ²μ λλ€ (6 λ νμ κ·Έκ²μ κΈ°μ΅ν μ μλ€λ©΄ ;-).
# 8002λ μ°Έμ‘°νμμμ€.
κ°μΈμ μΌλ‘ λͺ¨λ κ²μ λ€μ ν μ μλ€λ©΄ λͺ¨λ μΊμ€ν
/ κ°μ λ₯Ό λ€μ μ€ννμ¬ numpy μΊμ€ν
μ΄ κΈ°λ³Έμ μΌλ‘ C μΊμ€ν
μ²λΌ λμνκ³ Cμ μ‘΄μ¬νμ§ μλ κ²½μ° C μΊμ€ν
μ μ μ μ λ°λ₯΄λλ‘νκ² μ΅λλ€. κ·μΉμ λ€μ μ΄μνκ³ λλ‘λ νΌλ μ€λ½μ΅λλ€ (μ : uint64 + int64
μμ float64
λ‘μ λ³ν). κ·Έλ¬λ μ°λ¦¬λ λͺ©λ‘μμ μ΄κ²μ λ§μ΄ λ
Όμνκ³ λ³κ²½νκΈ°κ° μ΄λ €μ 보μ
λλ€.
μ΄μ κ°μ μν©μ΄ λ°μνλ©΄ (μ μ견 μ°Έμ‘°) np.uint64
λͺ¨λ λ¨μΌ κ°μ λνν©λλ€.
κ°μ₯ μ μ©ν λκΈ
λ μ¬μ΄ ν΄κ²° λ°©λ²μ μννΈμ λΆνΈμλ μ μλ₯Ό μ¬μ©νλ κ²μ λλ€.
@charrisκ° μμμ μΈκΈνλ―μ΄ λ¬Έμ λ dtypeμ΄ κ· μΌνκ² λ§λ€μ΄μ§λ λ°©μμ μμ΅λλ€. μΌλ°μ μΌλ‘ μμ νλ κ²μ 그리 μ¬μ΄ μΌμ΄ μλμ§λ§ (# 5668 μ°Έμ‘°) μννΈ μ°μ°μλ νΉμν κ²½μ°κ°μμ μ μμ΅λλ€. (PR νμν©λλ€, λ§νλ―μ΄ μ΄κ²μ μ¬μν κ²μ μλμ§λ§ ufucsμ λ΄λΆ 루νκ° μ΄λ»κ² κ²°μ λλμ§μ λν 곡μ ν μ΄ν΄κ° νμν©λλ€ ...).