Numpy基础知识2

一、类型简介

bool            #用一位存储的布尔类型(值为TRUE或FALSE)
inti            #由所在平台决定其精度的整数(一般为int32或int64)
int8            #整数,范围为128至127
int16           #整数,范围为32 768至32 767
int32           #整数,范围为231至231 1
int64           #整数,范围为263至263 1
uint8           #无符号整数,范围为0至255
uint16          #无符号整数,范围为0至65 535
uint32          #无符号整数,范围为0至2321
uint64          #无符号整数,范围为0至2641
float16         #半精度浮点数(16位):
                    #其中用1位表示正负号,5位表示指数,10位表示尾数
float32         #单精度浮点数(32位):
                    #其中用1位表示正负号,8位表示指数,23位表示尾数
float64或float #双精度浮点数(64位):
                    #其中用1位表示正负号,11位表示指数,52位表示尾数
complex64       #复数,分别用两个32位浮点数表示实部和虚部
complex128或complex #复数,分别用两个64位浮点数表示实部和虚部

二、实例

import numpy as np
b=np.float(42)
print(b)
a=np.int8(42.2)
print(a)
print(np.bool(42))
print(np.bool(0))
print(np.bool(42.1))
print(np.float64(True))
print(np.float32(False))
arr=np.array([23,45,26],dtype=np.bool)
print(arr)

names=np.array(["苏列","东皇钟"])
print(names.dtype)#不超过3位的字符串
结果如下
'''
42.0
42
True
False
True
1.0
0.0
[ True  True  True]
<U3
'''

三、用字符编码表示数据类型


import numpy as np
number=np.arange(10,dtype="i8")
numbers=np.arange(10,dtype="i")
print(numbers.dtype)                  #int32
print(number.dtype)                   #int64
names=np.array(["dsh","65f","1231231434265"],dtype="U10")
print(names.dtype)                    #<U10
print(names)                          #"U10"保留10位

arr2=np.array([1,"2",2+3j])
print(arr2.dtype)
print(arr2)  #多种数据类型中,Numpy只会都转换为字符串类型

arr3=np.array([1,2,True,4.3234])
print(arr3.dtype)   #fioat64类型,True会转化为1

四、自定义numpy数据类型

T=np.dtype([("name",np.str_,40),
            ("num",np.int32),
            ("price",np.float64)])
#等价于np.int32,np,int64,np.float32......
print(T["name"])
print(T)   #[('name', '<U40'), ('num', '<i4'), ('price', '<f8')]

products=np.array([("DVD",42,3.14),("Butter",13,2.72)],dtype=T)
#把前面每一个都看成一个T 类型
print(products.dtype)
print(products)
# 结果如下
# [('name', '<U40'), ('num', '<i4'), ('price', '<f8')]
# [('DVD', 42, 3.14) ('Butter', 13, 2.72)]

#获取products数组中有几个元素
for i in range(products.size):
    print(products.size)  #就是products的元素个数
    for j in range(len(products[i])):
        print(products[i][j])

五、将多维数组展平

import numpy as np
d3=np.arange(24).reshape(2,3,4)
print(d3)

#方法1:ravel()
d1=d3.ravel()            #修改数组,共用的是一个数组
print(d1)
#修改d1的第一个元素
d1[0]=1
print(d1)
print(d3)

#方法2:flatten()
d2=d3.flatten()          #不修改数据本身,返回新的数组
print(d2)
d2[0]=1
print(d2)
print(d3)

#ravel与flatten的区别
#ravel     修改数组,共用的是一个数组
#flatten   不修改数据本身,返回新的数组

猜你喜欢

转载自blog.csdn.net/sakura55/article/details/80453116
今日推荐