Python Forum
Determine number of all the immediately adjacent points in python
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Determine number of all the immediately adjacent points in python
#1
I have grid of point and want to calculate number of red and blue point surrounded by each point

for example

For point( X marked )

[Image: GemLj.png]

blue points = 6

red points = 2

I want to calculate it for the whole data set
Note: I have several dataframes with different grid sizes (24*5, 12*8, etc)
Note: In some of the dataframes I have less number of points then the grid size for example grid is 24*5 but number of points are 118

red=r=1
blue=b=0

df
    y   x   r/b
    4	2	0
	6	12	1
	10	8	1
	11	5	1
	7	1	0
	13	5	0
	7	9	1
	5	4	0
	7	8	1
	3	16	1
	15	10	1
	15	8	1
	3	18	0
	1	16	0
	11	8	1
	11	2	1
	1	4	0
	11	14	1
	11	6	1
	9	20	0
	7	2	1
	7	5	0
	6	19	0
	7	23	0
	3	19	0
	8	2	0
	9	8	1
	11	9	0
	11	3	0
	13	15	1
	2	2	0
	1	2	0
	6	1	0
	3	3	0
	11	19	0
	4	1	0
	3	21	0
	3	17	0
	9	21	0
	7	21	0
	15	15	1
	9	23	0
	14	14	0
	16	14	0
	12	14	0
	4	22	1
	2	20	0
	12	20	0
	6	2	0
	3	23	0
	14	22	1
	11	22	0
	5	6	0
	15	22	0
	7	16	0
	15	18	0
	5	20	0
	7	6	0
	7	24	0
	11	24	0
	3	8	1
	1	20	0
	11	15	0
	7	10	1
	14	20	0
	14	9	0
	12	3	0
	14	2	0
	10	6	0
	2	8	0
	16	3	0
	2	14	0
	12	19	0
	16	21	0
	16	9	0
	2	21	0
	10	7	0
	14	3	0
	14	15	0
	15	17	1
	11	18	1
	13	19	1
	3	1	0
	5	5	0
	8	14	1
	1	10	1
	6	6	0
	1	13	0
	13	9	0
	15	2	0
	9	11	1
	3	12	1
	12	18	0
	5	3	0
	9	3	1
	1	5	0
	9	7	0
	7	11	1
	8	21	0
	9	17	0
	4	12	0
	7	18	0
	3	2	0
	10	2	0
	6	22	0
	13	2	0
	3	4	0
	3	22	0
	5	18	1
	13	14	1
	11	16	1
	12	24	1
	16	20	0
	14	18	1
	4	16	0
	2	22	1
	9	22	0
	1	22	0
	10	21	0
	8	23	0
	2	19	0
	12	1	0
	12	10	1
	2	13	0
	10	15	1
	10	19	0
	14	10	0
	6	9	0
	4	7	0
	4	3	0
	10	10	0
	4	10	1
	2	10	1
	10	11	0
	2	12	0
	4	19	0
	10	1	0
	4	15	0
	16	8	0
	4	8	0
	2	6	0
	12	4	0
	2	4	0
	11	4	0
	13	20	0
	1	24	0
	15	20	0
	7	22	0
	9	24	0
	6	8	0
	10	5	0
	8	8	1
	10	12	1
	6	11	0
	10	9	0
	4	11	0
	12	23	0
	12	17	0
	4	17	0
	12	13	0
	12	5	1
	2	15	0
	12	9	0
	8	1	0
	6	7	0
	16	11	0
	10	23	0
	4	4	0
	3	24	0
	9	12	1
	16	4	0
	13	6	1
	9	2	1
	3	20	0
	15	4	0
	15	14	1
	13	16	1
	8	4	0
	5	16	0
	7	20	0
	1	8	0
	5	24	0
	9	16	1
	16	6	0
	13	12	0
	15	16	1
	5	8	1
	13	18	0
	11	10	1
	13	22	1
	4	6	0
	1	18	0
	9	18	0
	13	17	1
	13	21	0
	11	23	0
	1	15	0
	5	21	0
	5	23	0
	11	21	1
	9	19	0
	12	11	0
	14	17	0
	2	11	0
	8	11	0
	16	12	0
	2	5	0
	16	1	1
	16	15	0
	14	1	0
	8	17	0
	8	7	0
	4	23	0
	6	3	0
	14	7	0
	8	15	0
	12	21	0
	8	13	0
	2	9	0
	8	9	0
	16	5	0
	14	11	0
	2	23	0
	14	5	1
	6	5	0
	6	13	0
	4	5	0
	6	23	0
	8	5	0
	16	7	0
	16	17	1
	4	14	0
	12	8	0
	12	12	0
	6	10	1
	14	12	0
	16	10	0
	8	12	1
	14	8	0
	1	19	0
	5	17	0
	3	15	0
	9	15	0
	3	13	0
	11	13	1
	13	13	0
	13	7	1
	11	7	1
	13	1	1
	16	16	1
	10	14	1
	12	22	0
	6	18	0
	9	4	0
	3	6	1
	7	14	0
	3	14	0
	8	6	0
	5	12	1
	5	11	0
	6	14	1
	10	16	0
	4	20	1
	16	18	1
	8	18	0
	4	24	0
	6	16	1
	14	16	1
	13	3	0
	15	11	0
	15	1	0
	15	3	0
	5	9	0
	1	17	0
	1	9	0
	1	1	0
	7	17	0
	1	21	0
	10	18	0
	16	22	1
	6	24	0
	4	18	0
	2	16	0
	16	2	0
	15	6	0
	9	14	1
	5	14	1
	1	14	1
	3	10	0
	9	10	0
	8	16	0
	5	10	1
	9	6	0
	9	13	0
	15	12	0
	8	20	0
	1	12	0
	11	12	1
	8	22	0
	7	12	1
	13	4	0
	8	24	0
	13	10	1
	6	20	0
	8	10	1
	1	6	0
	5	22	0
	5	2	0
	2	1	0
	11	11	0
	15	7	0
	11	1	1
	9	5	1
	7	7	0
	15	13	1
	13	11	1
	5	7	0
	15	21	0
	10	22	1
	12	2	0
	14	4	0
	2	24	0
	12	16	1
	2	18	0
	15	19	0
	3	11	0
	5	19	0
	10	24	0
	11	17	0
	1	23	0
	3	7	0
	2	17	0
	4	21	0
	14	13	0
	6	15	0
	7	13	0
	10	4	0
	6	21	0
	6	17	0
	14	21	0
	16	13	0
	10	13	0
	15	5	0
	10	17	0
	5	15	0
	7	3	0
	2	7	0
	4	13	0
	3	9	1
	10	3	0
	15	9	0
	2	3	0
	12	15	0
	16	19	0
	7	15	0
	12	6	0
	8	19	0
	4	9	0
	5	1	0
	1	7	0
	1	3	0
	9	1	0
	5	13	0
	1	11	0
	9	9	0
	12	7	0
	13	8	1
14	6	0
15	23	0
16	23	0
15	24	0
16	24	0
13	23	1
14	23	1
13	24	1
14	24	1
7	4	0
11	20	1
6	4	1
10	20	1
8	3	1
14	19	0
3	5	1
7	19	1
color_matrix=df["r/b"].values.reshape(24, 16) #since this dataframe has grid size 24*16

from scipy import signal

adjacent_boxes = np.array([[1,1,1], [1,0,1], [1,1,1]])

red_dots = signal.convolve2d(color_matrix, adjacent_boxes , mode='same', boundary='fill')
blue_dots = signal.convolve2d(1 - color_matrix, adjacent_boxes , mode='same', boundary='fill')

df['red_dots'] = red_dots.flatten()
df['blue_dots'] = blue_dots.flatten()
this code has issue as 1st col= y axis, 2nd col= x axis, show the coordinates of each point and they are not in the sequence , but simply doing .reshape(num_rows, num_cols) will create 2D array as it is sequenced in the dataframa (col3)

Final goal is to have df with
y x r/b red_dots blue_dots
Reply
#2
any one ??
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to immediately kill and restart a thread while using a time.sleep() inside it? philipbergwerf 4 3,521 Feb-07-2022, 04:16 PM
Last Post: Gribouillis
  How to define a variable in Python that points to or is a reference to a list member JeffDelmas 4 2,643 Feb-28-2021, 10:38 PM
Last Post: JeffDelmas
  How can I scroll over my data points when creating plots in Python? (I'm using Spyder moose 0 1,603 Nov-02-2020, 07:18 AM
Last Post: moose
  How to determine how many variables are referring the same id in python? divyansh 5 2,369 Aug-04-2020, 01:36 PM
Last Post: deanhystad
  how to specify options or tickle python to output points swept by the optimization? bsmile 3 2,656 Aug-02-2019, 10:31 PM
Last Post: scidam
  How to determine pen color from an image? robie972003 2 2,375 Mar-24-2019, 10:06 PM
Last Post: robie972003
  Adding adjacent parts of a list TrueStudentOfPython 1 2,351 Nov-09-2018, 02:40 AM
Last Post: ichabod801
  determine if an number is in a list Dbeah 7 3,760 Nov-06-2018, 12:11 PM
Last Post: buran
  determine if an number is in a list Dbeah 1 2,227 Nov-04-2018, 04:50 PM
Last Post: stullis
  how to determine if an object is a number Skaperen 6 3,953 Jul-11-2018, 08:18 PM
Last Post: Skaperen

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020