numpy与list

import numpy as np

numpy.array的各种初始化
  • 初始化一个 从0开始递增,长度为参数值 的数组
    ls2 = np.arange(10)
  • linspace 初始化一个递增数组
    np.linspace(start=0,stop=20,num=10) #终点默认是包含的
    np.linspace(start=0,stop=20,num=10,endpoint=False) #终点不包含
  • 人为输入一个数组
    arr=np.array((1,20,30,40))
  • 元组转数组
    arr=array([1,20,30,40])
  • 初始化一个随机的数组
通过np.random.rand()可以返回一个或一组服从标准正态分布的随机样本值
1.无参数时
np.random.rand()返回的是一个随机值
2.一个参数时
返回的是一个一维数组
3.两个参数及以上时
返回的对应维度的数组

numpy的拼接

a和b都是3*3的numpy数组

水平拼接
np.hstack((a,b))
np.concatenate((a,b),axis=1)

垂直拼接
np.vstack((a,b))
np.concatenate((a,b),axis=0)
 
深度组合:沿着纵轴方向组合
np.dstack((a,b))

判断某元素在list出现的第一个位置

list1=[2,3,1,9,112,23,23,6,6,1,3,0,11,2,1,1]
start=list1.index(1)

统计某元素在list中的出现次数

list_a.count(2)

判读某元素是否在list中

if ‘a’ in theList: 

统计某一个元素在list出现的所有位置

list1=[2,3,1,9,112,23,23,6,6,1,3,0,11,2,1,1]

L1=len(list1)   #列表list1的长度
list2=list(set(list1))  #可以用set,直接去掉重复的元素
list2.sort(reverse=False)   #将列表由小到大排序
L2=len(list2)   #列表list2的长度
print('集合:'+str(list1))
for m in range(L2):
    X=set() #设定一个空的集合,用来存放这个元素的所在的位置
    start=list1.index(list2[m])
    for n in range(L1):
        stop=L1
        if list2[m] in tuple(list1)[start:stop]:
            a=list1.index(list2[m],start,stop)
            X.add(a)
            start=start+1
    print('元素:'+str(list2[m])+',一共有'+str(len(X))+'个,在列表位置集合为:'+str(X))

list与numpy.array的转换

u = array([[1,2],[3,4]])
m = u.tolist()   #转换为list
m.remove(m[0])    #移除m[0]
m = np.array(m)    #转换为array

计算numpy向量的欧几里得距离

numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2)))

list去除重复元素

l1 = ['b','c','d','b','c','a','a'] 
l2 = list(set(l1)) 

找到两个list中重复元素

list_a = [1,2,3,4]
list_b = [3,4,5,6,7]
set_c = set(list_a) & set(list_b)
list_c = list(set_c)
可以得到:
list_c = [3,4]

矩阵

  • 初始化3*5的矩阵X=np.arange(15).reshape(3,5)
  • X.ndim #查看维度个数
  • X.shape #查看形状

其他细节

  • 数组的数据类型转换np.arange(10).astype(np.float32)

你可能感兴趣的:(python包函数学习,python,numpy,list)