![]() ![]() See utf8 = np.frombuffer(sentence.encode(), dtype=np.uint8) So what are those 19990, 30028 to the encoded string Unsurprisingly, 19990 is unicode for ä¸ ref here I could also, instead of using a int based example, have compared to ![]() It can't understand what is in a object array. That means that this is opaque for numpy. A pointer to those python object, if your wish. So, this is what object means from numpy point of view: id of python object are stored. Likewise with your own array struct.unpack('l', a.tobytes()) ![]() We see that each number is encoded with 8 bytes, so 24 bytes all together.Ä«ut watching Ub, that doesn't seem to be just the int64 encoding of 1 2 3. Now, compare that to this U=np.array(, dtype=object) So, nothing surprising here: when we create an array on 3 int32, it contains 12 bytes, that are the 12 bytes representing the values of those int32. You can decode also with struct import struct Which also shows by just watching Tb: we see the 12 bytes, 1,0,0,0 (so 1, on 32 bits, little endian - at least on my machine, probably on yours too), 2,0,0,0 (so 2), 3,0,0,0. But it proves what is stored in numpy's memory: directly the values of the 3 int32. Of course, the last line may seem stupid. See the difference T=np.array(, dtype=np.uint32) And can efficiently be iterated by numpy's internal C code, without having to bother about python internal representation of data) So, an array of 1000 short int, use only 2000 bytes in memory. It just means "other python stuff" (by opposition to other data types, that are converted in numpy, without their internal python wrapping: only the array is wrapped in a python object, not all its content. I think you misunderstand what np.object is. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |