python数据处理之numpy

import numpy as np

print ('使用普通一维数组生成NumPy一维数组')
data = [6, 7.5, 8, 0, 1]
arr = np.array(data)
print (arr)
print ('打印元素类型')
print (arr.dtype)
print(arr.shape)
print 

print ('使用普通二维数组生成NumPy二维数组')
data = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr = np.array(data)
print (arr)
print ('打印数组维度')
print(arr.dtype)
print (arr.shape)
print

print ('使用zeros/empty')
print (np.zeros(10)) # 生成包含10个0的一维数组
print (np.zeros((3, 6))) # 生成3*6的二维数组
print (np.empty((2, 3, 2))) # 生成2*3*2的三维数组,所有元素未初始化。
print

print ('使用arrange生成连续元素')
print (np.arange(15))  # [0, 1, 2, ..., 14]

print ('生成数组时指定数据类型')
arr = np.array([1, 2, 3], dtype = np.float64)
print (arr.dtype)
arr = np.array([1, 2, 3], dtype = np.int32)
print (arr.dtype)
print

print ('使用astype复制数组并转换数据类型')
int_arr = np.array([1, 2, 3, 4, 5])
float_arr = int_arr.astype(np.float)
print (int_arr.dtype)
print (float_arr.dtype)
print

print ('使用astype将float转换为int时小数部分被舍弃')
float_arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1])
int_arr = float_arr.astype(dtype = np.int)
print (int_arr)
print

print ('使用astype把字符串转换为数组,如果失败抛出异常。')
str_arr = np.array(['1.25', '-9.6', '42'], dtype = np.string_)
float_arr = str_arr.astype(dtype = np.float)
print (float_arr)
print

print ('astype使用其它数组的数据类型作为参数')
int_arr = np.arange(10)
float_arr = np.array([.23, 0.270, .357, 0.44, 0.5], dtype = np.float64)
print (int_arr.astype(float_arr.dtype))
print (int_arr[0], int_arr[1])  # astype做了复制,数组本身不变。

# 数组乘法/减法,对应元素相乘/相减。
arr = np.array([[1.0, 2.0, 3.0], [4., 5., 6.]])
print (arr * arr)
print (arr - arr)
print

# 标量操作作用在数组的每个元素上
arr = np.array([[1.0, 2.0, 3.0], [4., 5., 6.]])
print (1 / arr)
print (arr ** 0.5)  # 开根号
print ('使用布尔数组作为索引')
name_arr = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
rnd_arr = np_random.randn(7, 4) # 随机7*4数组
print (rnd_arr)
print (name_arr == 'Bob') # 返回布尔数组,元素等于'Bob'为True,否则False。
print (rnd_arr[name_arr == 'Bob'])  # 利用布尔数组选择行
print (rnd_arr[name_arr == 'Bob', :2])  # 增加限制打印列的范围
print (rnd_arr[-(name_arr == 'Bob')]) # 对布尔数组的内容取反
mask_arr = (name_arr == 'Bob') | (name_arr == 'Will') # 逻辑运算混合结果
print (rnd_arr[mask_arr])
rnd_arr[name_arr != 'Joe'] = 7  # 先布尔数组选择行,然后把每行的元素设置为7。
print (rnd_arr)

猜你喜欢

转载自blog.csdn.net/huangmengfeng/article/details/80157011