我想知道,为什么对np对象[]中的字符串进行哈希运算会产生预期的结果:
>>> hashlib.sha256(np.array(['asdfda'], dtype=object)).hexdigest()
'6cc08fd2542235fe8097c017c20b85350899c81616db8cb59045022663e3cee1'
>>> hashlib.sha256(np.array(['asd'+'fda'], dtype=object)).hexdigest()
'6cc08fd2542235fe8097c017c20b85350899c81616db8cb59045022663e3cee1'
也就是说,散列将考虑实际的对象值,而不仅仅是存储在数组中的指针值。(这些字符串肯定会有不同的指针。)
hashlib
方法似乎接受支持某些“缓冲区API”的对象,因为不这样做会产生TypeError: object supporting the buffer API required
这是否意味着numpy的ndarray的缓冲区API实现不返回指针数组,而是返回字符串数组,或者换句话说hashlib.hash_algorithm
如何访问存储的字符串
在这里肯定是一个非常有力的说法。看看我在REPL中测试的结果:
但是,
正如所料,散列是不同的:
相关问题 更多 >
编程相关推荐