Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否生成与现有1D数组具有预先指定相关性的NumPy 1D数组?_Python_Arrays_Numpy - Fatal编程技术网

Python 是否生成与现有1D数组具有预先指定相关性的NumPy 1D数组?

Python 是否生成与现有1D数组具有预先指定相关性的NumPy 1D数组?,python,arrays,numpy,Python,Arrays,Numpy,我有一个未生成的1D NumPy数组。现在,我们将使用生成的一个 将numpy导入为np arr1=np.随机均匀(0,100,1_000) 我需要一个与之相关的数组0.3: arr2='?' 打印(np.corrcoef(arr1,arr2)) 我已经在stats.SE上适应了NumPy。其思想是随机生成第二个数组noise,然后在arr1上计算noise的最小二乘线性回归的残差。残差必然与arr1具有0的相关性,当然arr1与自身具有1的相关性,因此a*arr1+b*残差的适当线性组合将

我有一个未生成的1D NumPy数组。现在,我们将使用生成的一个

将numpy导入为np
arr1=np.随机均匀(0,100,1_000)
我需要一个与之相关的数组
0.3

arr2='?'
打印(np.corrcoef(arr1,arr2))
我已经在stats.SE上适应了NumPy。其思想是随机生成第二个数组
noise
,然后在
arr1
上计算
noise
的最小二乘线性回归的残差。残差必然与
arr1
具有0的相关性,当然
arr1
与自身具有1的相关性,因此
a*arr1+b*残差的适当线性组合将具有任何期望的相关性

将numpy导入为np
def生成带有_corrcoef的_(arr1,p):
n=len(arr1)
#产生噪音
噪声=np.随机均匀(0,1,n)
#噪声的最小二乘线性回归=m*arr1+c
m、 c=np.linalg.lstsq(np.vstack([arr1,np.one(n)]).T,噪声[0]
#残差与arr1的相关性为0
残差=噪声-(m*arr1+c)
#右线性组合a*arr1+b*残差
a=p*np.std(残差)
b=(1-p**2)**0.5*np.std(arr1)
arr2=a*arr1+b*残差
#返回缩放/移位结果,使其具有与arr1相同的平均值/sd
#这不会改变相关系数
返回np.mean(arr1)+(arr2-np.mean(arr2))*np.std(arr1)/np.std(arr2)
最后一行缩放结果,使平均值和标准偏差与
arr1
相同。但是,
arr1
arr2
的分布不相同

用法:

arr1=np.random.uniform(011000) >>>arr2=生成带有_corrcoef的_(arr1,0.3) >>>np.corrcoef(arr1,arr2) 数组([[1,0.3], [0.3, 1. ]])
arr2
的分发上是否存在任何其他限制?否。但最好与arr1的比例相同
Out[1]: 0.3