numpy

>>>基本属性
import numpy as np

array = np.array([[1,2,3],[2,3,4]])
a = np.random.rand(2,3)  # 生成指定维度的随机多维数组
print(a)
print(array)
print(array.ndim)        # 维度个数
print(array.shape)       # 各维度大小
print(array.size)        # 元素总数
print(array.dtype)       # 数据类型
a = np.arange(2,14).reshape((3,4))
print(np.argmax(a))     # 最大值索引
print(np.argmin(a))     # 最小值索引
View Code

>>>创建多维数组

#1--list转化

import numpy as np

# list转换
l = range(10)
a = np.array(l)
print(a)    # 一维数组
View Code

#2--嵌套序列转换

import numpy as np

l = [range(10),range(10)]
a = np.array(l)
print(a)
print(a.shape)     # (2,10)
print(a.ndim)      # 2 
View Code

#3--np.zeros,np.ones,np.emtpy

import numpy as np

# 全0
zero_arr = np.zeros((3,4))
print(zero_arr)
# 全1
ones_arr = np.ones((3,4))
print(ones_arr)
#
empty_arr = np.empty((3,4))
print(empty_arr)
View Code

#4--np.arange()

import numpy as np

arr = np.arange(10)        
print(arr)      # 0,1,2,3,4,5,6,7,8,9
View Code

# 数据类型转换 astype

1 import numpy as np
2 
3 zeros_float_arr = np.zeros((3,4),dtype=np.float64)
4 print(zeros_float_arr.dtype)
5 
6 zeros_int_arr = zeros_float_arr.astype(np.int32)
7 print(zeros_int_arr)
8 print(zeros_int_arr.dtype)
View Code

>>>索引与切片

arr = np.linspace(1,10,12).reshape(3,4)
print(arr)   # 1-10 12等分 生成3行四列的二维数组
print(arr[2,3])       # 第3行第4列  等价于 arr[2][3]
print(arr[1:3,1:3])   # 第2-3行,第2-3列
print(arr[:,:])       # 所有行,所有列
View Code

--条件索引

import numpy as np

arr = np.random.rand(3,3)
print(arr)
year_arr = np.array([
                    [2000,2001,2000],
                    [2005,2002,2009],
                    [2001,2003,2010],
                     ])
filtered_arr = arr[year_arr>=2005]
print(filtered_arr)   # 输出year_arr中>=2005对应位置的arr元素
View Code

--多条件索引

import numpy as np

arr = np.random.rand(3,3)
print(arr)
year_arr = np.array([
                    [2000,2001,2000],
                    [2005,2002,2009],
                    [2001,2003,2010],
                     ])
filtered_arr = arr[(year_arr<2005) & (year_arr % 2 == 0)]
print(filtered_arr)    
View Code

>>>>维数转换

#1--二维

import numpy as np

arr = np.random.rand(3,4)
print(arr)
arr_t = arr.T
print(arr_t)
arr_t = arr.transpose()
print(arr_t)
View Code

#2--多维

import numpy as np

arr3d  = np.random.rand(2,3,4)  # 2x3x4
print(arr3d)
arr_t = arr3d.transpose((1,0,2))  # 3x2x4
print(arr_t)
View Code

>>> 最大最小值索引

import numpy as np

a = np.arange(2,14).reshape((3,4))
print(np.argmax(a))     # 最大值索引
print(np.argmin(a))     # 最小值索引 
View Code
#################################################
>>>>通用函数
ceil 向上取整
floor 向下取整
rint 四舍五入
isnan 判断元素是否为Nan
multiply 元素相乘
divide 元素相除

--np.where 三元运算
import numpy as np

arr = np.random.randn(3,4)
print(arr)
print(np.where(arr>0,1,-1))          # 元素大与0 显示1,反之显示0
View Code

###################常用的统计方法

#1--sum 和

import numpy as np

arr = np.arange(10).reshape((5,2))
print(np.sum(arr))    # 所有元素的和 45
print(np.sum(arr,axis=0))   # 列元素的和[20 25]
print(np.sum(arr,axis=1))    # 行元素的和[1 5 9 13 17]
View Code

#1--np.all,np.any,np.unique(去重)

arr = np.random.randn(2,3)
print(arr)
print(np.any(arr>0))    # 有一个满足就返回True
print(np.all(arr>0))    # 所有满足才返回True,否则返回false
View Code

 


from numpy import random
from matplotlib import pylab

x=random.random_integers(10,50,10)#(min,max,numbers)随机生成10个10-50之间的数
y=random.normal(10,0.5,100)#(average,u,numbers)生成100个符合正态分布的数,均数为10,u=0.5
posted @ 2018-05-06 10:43  Ray_chen  阅读(133)  评论(0)    收藏  举报